Laborvezetőknek
Az első hat előadás laborkártyái közül válogatva kérdezzük végig a hallgatóságot! (A hatodik , nagyobb lélegzetvételűbe több új kártya is szerepel az előadás második része miatt, ezeket a szerdai előadás után kérdezzük csak.) Arra külön figyeljünk, hogy aki nem tudott egy kártyát, az mindenképpen kapjon a következő laboron is!
Hallgatóknak
A szokásos: sosem árt előre készülni a laborra, nálam szereztek így kisbajnokság trófeát. Ha többen is elkészítik, akkor holtversenyben mindannyian megkapják a "trófeákat". Illetve a laborkártyákat nem a beugró helyett találtuk ki, hanem hogy megadja a rendszeres heti készülés alaphangját annak is, aki nem tud, vagy nem akar részt venni a vadászatban. De ha de facto ilyen funkciója is kialakul, az sem baj. Más: lassan lehet védeni a teljesítés egyik szükséges feltételét. Természetesen C-ben és C++-ban is lehet tolni a beszámolót.
Tematika
Az alábbi témák legtöbbjét próbáljuk lefedni a "8/9" gyakorlaton:
- Fejlesszük tovább a korábbi osztályt, hogy meg lehessen kérdezni a példányaitól a fa mélységét, ághosszainak átlagát és szórását!
A laborvezető döntése szerint az esetlegesen (ünnep, szalmai napok miatt) elmaradt laborból is lehet csemegézni:
- korábbi laboron foglalkoztunk a berkeley socket C API-val: ez volt a multiplexelt, forkos, szemaforos osztott memóriás TCP szerver. Most C++-ból socketezünk.
- a tegnapi openMP-s labormérést végezd el a korábbi bevezető EXOR töréses példára
BN laborján
- Sebesség teszteljük a laboron készített C++ megoldást a korábbi C megoldással összehasonlítva:
[norbi@sgu tcag]$ g++ z3a.cpp -o z3a
(a kiírt számok rendben, de az idő... valami zavar van az erőben, mi?)
[norbi@sgu tcag]$ time ./z3a <hs_alt_Hs_Celera_chr2.fa.dA
depth=1945
mean=77.9747
var=13.3204
real 5m47.999s
user 5m45.241s
sys 0m2.030s
[norbi@sgu tcag]$ gcc z.c -o z -lm
[norbi@sgu tcag]$ time ./z <hs_alt_Hs_Celera_chr2.fa.dA
melyseg=1945
altag=77.974697
szoras=13.320417
real 16m33.758s
user 4m14.530s
sys 12m18.196s - a gépteremben kevés a lemezterület, így módosítsd úgy a d.c-t, hogy csak 80 Megát nyomjon ki (a 6 Giga helyett):
[norbi@sgu tcag]$ ./d10mega < hs_alt_Hs_Celera_chr2.fa > hs_alt_Hs_Celera_chr2.fa.10
83886080/1024/1024 = 80!
[norbi@sgu tcag]$ ls -l hs_alt_Hs_Celera_chr2.fa.10
-rw-rw-r--. 1 norbi norbi 83886080 ápr 3 14.51 hs_alt_Hs_Celera_chr2.fa.1[norbi@sgu tcag]$ gcc -O3 z.c -o z -lm
Láthatod, nem az O3 (mint az előző laboron....) valami más. Ha megmondod, mitől gyorsabb a C++ változat, adok egy trófeát.
[norbi@sgu tcag]$ time ./z <hs_alt_Hs_Celera_chr2.fa.10
melyseg=495
altag=59.906339
szoras=6.728059
real 0m42.708s
user 0m8.251s
sys 0m34.162s
[norbi@sgu tcag]$ time ./z3a <hs_alt_Hs_Celera_chr2.fa.10
depth=495
mean=59.9063
var=6.72806
real 0m13.074s
user 0m12.971s
sys 0m0.087s