PÁRHUZAMOS SZÁMÍTÁSTECHNIKA MODUL AZ ÚJ TECHNOLÓGIÁKHOZ KAPCSOLÓDÓ MEGKÖZELÍTÉSBEN



Hasonló dokumentumok
GPGPU alapok. GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai

INFORMATIKAI SZOLGÁLTATÁSIRÁNYÍTÁS. Katona Krisztina, Kurdi Zsombor Budapesti Műszaki Főiskola Neumann János Informatikai Kar.

OSZTOTT 2D RASZTERIZÁCIÓS MODELL TÖBBMAGOS PROCESSZOROK SZÁMÁRA

Informatika a felsőoktatásban 2008 Debrecen, augusztus JAVA PROGRAMOZÁSI NYELV OKTATÁSA C# ALAPOKON

SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN

GPGPU-k és programozásuk Dezső, Sima Sándor, Szénási

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

4. Előfeltételek (ha vannak) 4.1 Tantervi Nincs 4.2 Kompetenciabeli Feladatok kijelentéseinek megértése

Bevezetés. Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar

Mérnök informatikus (BSc) alapszak levelező tagozat (BIL) / BSc in Engineering Information Technology (Part Time)

UNIX operációs rendszer bemutatása. A UNIX története, fejlesztésének céljai.

Négyprocesszoros közvetlen csatolású szerverek architektúrája:

Számítógépes adatbiztonság

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

Mérnök informatikus alapképzési szak

Cloud computing Dr. Bakonyi Péter.

Using the CW-Net in a user defined IP network

SZAKMAI BESZÁMOLÓ EVK SZAKKOLLÉGIUM. BESZÁMOLÓ: A 2014/2015 A Pallas Athéné Domus Scientiae Alapítvány pályázatára 2014/2015-ÖS TANÉV

Mérnök informatikus (BSc) alapszak levelező tagozat (BIL) / BSc in Engineering Information Technology (Part Time)

KÖNYVTÁR-INFORMATIKAI KÉPZÉS A KLTE-N

A TÖBBDIMENZIÓS KÉPFELDOLGOZÁS PROGRAMJAI ÉS OKTATÁSUK

KÉPI INFORMÁCIÓK KEZELHETŐSÉGE. Forczek Erzsébet SZTE ÁOK Orvosi Informatikai Intézet. Összefoglaló

tantárgy E GY E GY Matematikai alapok I. kötelező - kollokvium 30 3 Matematikai alapok I.

OpenCL - The open standard for parallel programming of heterogeneous systems

Diplomamunka. Miskolci Egyetem. GPGPU technológia kriptográfiai alkalmazása. Készítette: Csikó Richárd VIJFZK mérnök informatikus

Grafikus csővezeték 1 / 44

*#Discount~ Kaspersky Internet Security - multidevice 2015 best software to buy for mac ]

Ismétlés: Moore törvény. Tranzisztorok mérőszáma: n*százmillió, n*milliárd.

A CAN mint ipari kommunikációs protokoll CAN as industrial communication protocol

Projektmenedzsment eszközök Projektirányítás számítógéppel

Ami az Intel szerint is konvergens architektúra

FIR SZŰRŐK TELJESÍTMÉNYÉNEK JAVÍTÁSA C/C++-BAN

A TÉRINFORMATIKA OKTATÁSA ÉS ALKALMAZÁSI LEHETÕSÉGEI

GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR KOMPETENCIA FELMÉRÉSÉNEK KIÉRTÉKELÉSE TÁMOP /1

A modern e-learning lehetőségei a tűzoltók oktatásának fejlesztésében. Dicse Jenő üzletfejlesztési igazgató

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

SZAKIRÁNYOK A MISKOLCI EGYETEM MÛSZAKI INFORMATIKAI SZAKÁN

Kereső algoritmusok a diszkrét optimalizálás problémájához

TANFOLYAMI AJÁNLATUNK

Organizáció. Számítógépes Hálózatok Gyakorlati jegy. Vizsga. Web-oldal

1. Fejezet: Számítógép rendszerek

Adattár. Adattár. Elemzések, modellezés. Adatszolgáltatás

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS

Előfeltétel (tantárgyi kód) Tantárgyfelelős neve Dr. Kovács Zoltán, a mat. tud. kandidátusa Tantárgyfelelős beosztása főiskolai tanár

INFORMATIKA ZÁRÓSZIGORLAT TEMATIKA

Számítógépes Hálózatok ősz 2006

Organizáció. Számítógépes Hálózatok ősz Tartalom. Vizsga. Web-oldal

A SZÁMÍTÓGÉPPEL TÁMOGATOTT OKTATÁS EREDMÉNYEI A KÉE ÉFK-N

Felnőttképzés Európában

A PROBLÉMAMEGOLDÓ GONDOLKODÁS HELYE AZ ADATBÁZISKEZELÉS OKTATÁSÁBAN. Kupcsikné Fitus Ilona, Selmeci István SZÁMALK Zrt.

Az informatika alapjai. 10. elıadás. Operációs rendszer

Többrétegű műszaki nyilvántartás. NETinv

AZ INFORMATIKA OKTATÁSÁNAK MÚLTJA ÉS JELENE A KOLOZSVÁRI EGYETEMEN

Számítógépes grafika

A földi ellenôrzô berendezésekben alkalmazott programozási technikák

Microsoft alapokon az országszerte mintegy 200 telephellyel rendelkező szervezet. hálózata

IT biztonság és szerepe az információbiztonság területén

SZÁMÍTÓGÉPES VIZUALIZÁCIÓ A MATEMATIKA TANÍTÁSÁBAN: ESZKÖZÖK, FEJLESZTÉSEK, TAPASZTALATOK

KÜLSÕ CÉGEK TÁMOGATÁSÁVAL MEGVALÓSÍTOTT, 4GL ÉS CASE ESZKÖZÖKRE ALAPOZOTT KÉPZÉS A SZÉCHENYI ISTVÁN FÕISKOLÁN

MŰSZAKI TUDOMÁNY AZ ÉSZAK-ALFÖLDI RÉGIÓBAN 2010

MŰSZAKI TUDOMÁNY AZ ÉSZAK-KELET MAGYARORSZÁGI RÉGIÓBAN 2012

Az oktatási miniszter. 15/2006. (IV. 3.) OM rendelete. az alap- és mesterképzési szakok képzési és kimeneti követelményeiről

TECHNIKAI RENDSZEREK ÁLLAPOTLEÍRÁSÁNAK KÉRDÉSEI QUESTIONS REGARDING THE DESCRIPTION OF THE STATE OF TECHNICAL SYSTEMS

Diagnosztikai szemléletű talajtérképek szerkesztése korrelált talajtani adatrendszerek alapján

PARAMÉTERES GÖRBÉK ALKALMAZÁSA VALÓSIDE- JŰ DIGITÁLIS HANGFELDOLGOZÁS SORÁN

Ismeretanyag Záróvizsgára való felkészüléshez

DIPLOMÁS LOGISZTIKAI SZAKREFERENS SZAKIRÁNYÚ TOVÁBBKÉPZÉSI SZAK. A szak képzéséért felelős szervezeti egység: Nemzetközi Gazdálkodási Tanszék

Képfeldolgozás és párhuzamosíthatóság

Széchenyi István Szakképző Iskola

Robotot vezérlő szoftverek fejlesztése Developing robot controller softwares

A Debreceni Egyetem és a Nagyváradi Egyetem WiFi alapú helymeghatározó rendszere

GPGPU. GPU-k felépítése. Valasek Gábor

Tantárgyi programok 1. Informatikai projektmenedzsment A projektmenedzsment alapjai (a projektek típusai, életciklus, szervezet, ütemezés,

Algoritmusok és adatszerkezetek II.

WWW MULTIMÉDIA INTERFÉSZ ADATBÁZISHASZNÁLATHOZ AZ INTERNETEN

Informatikai Tesztek Katalógus

LABORATÓRIUMI GYAKORLATOK A MÉRNÖK-INFORMATIKUS OKTATÁSBAN

ÓBUDAI EGYETEM Neumann János Informatikai Kar Informatikai Rendszerek Intézet Témavezető: Bringye Zsolt

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA

III. "JÖVŐ INTERNET" TECHNOLÓGIÁK: ELOSZTOTT ÉS FELHŐ SZOLGÁLTATÁSOK, TÁRGYAK INTERNETE DR. SIMON GYULA

Két projekt - Két év. etrik TISZK

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

A TANTÁRGY ADATLAPJA

INTELLIGENT ENERGY EUROPE PROGRAMME BUILD UP SKILLS TRAINBUD. Quality label system

AZ ERDÕ NÖVEKEDÉSÉNEK VIZSGÁLATA TÉRINFORMATIKAI ÉS FOTOGRAMMETRIAI MÓDSZEREKKEL KARSZTOS MINTATERÜLETEN

A TANTÁRGY ADATLAPJA

GAZDASÁGI ÉS VIDÉKFEJLESZTÉSI AGRÁRMÉRNÖK

Tarantella Secure Global Desktop Enterprise Edition

Osztott alkalmazások fejlesztési technológiái Áttekintés

Novell és Oracle: a csúcsteljesítményű, költséghatékony adatközpont megoldás. Sárecz Lajos Értékesítési konzultáns

Mérnök informatikus mesterszak mintatanterve (GE-MI) nappali tagozat/ MSc in, full time Érvényes: 2011/2012. tanév 1. félévétől, felmenő rendszerben

Gazdaságinformatikus alapképzési szak

DB2. Repülőrajt - DB2 ügyfelek. DB2 v9 Linux, UNIX és Windows rendszerhez GC

Tevékenység szemléletű tervezés magyarországi felsőoktatási intézmények pályázataiban

A controlling és az értékelemzés összekapcsolása, különös tekintettel a felsőoktatási és a gyakorlati alkalmazhatóságra

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Dr. Dezsõ Renáta Anna

Átírás:

PÁRHUZAMOS SZÁMÍTÁSTECHNIKA MODUL AZ ÚJ TECHNOLÓGIÁKHOZ KAPCSOLÓDÓ MEGKÖZELÍTÉSBEN PARALLEL COMPUTING MODULE BASED ON THE NEW TECHNOLOGIES Vámossy Zoltán 1, Sima Dezső 2, Szénási Sándor 3, Rövid András 4, Kárász Péter 5, Miklós Árpád 6, Sergyán Szabolcs 7 és Tóth Ákos 8 Összefoglaló: A számítástechnikai eszközök többmagossá, illetve többszálassá váltak. Ennek megfelelően a párhuzamos számítástechnika megváltozott és megújult formában ismét meghatározó tényező lett, és az informatikus képzettségű hallgatóktól elvárt igény ezen terület alapos ismerete. Ezt az igényt terveztük kielégíteni, amikor kidolgoztunk egy olyan modult, amelynek középpontjában a párhuzamos számítástechnika elméleti háttere mellett a gyakorlatra, az új technikák alkalmazásának elsajátítására helyeződött a hangsúly. A bevezető alapozást, mely összefoglalja a párhuzamos architekturális és operációs rendszer szintű hátteret, valamint a párhuzamos programozás alaptechnikáit, a többszálas programozás gyakorlati elsajátítása követi a jelenleg használatos környezetekben, amelyekbe a többmagos processzorok ugyanúgy beletartoznak, mint a GPGPU-k adta lehetőségek. A gyakorlati kompetenciákat biztosító laboratóriumi feladatok és projektek elvégzése/megoldása mellett egy választható tárgy keretében a kidolgozott modult választó hallgatók egy olyan alkalmazási területtel is megismerkednek, ahol az elsajátított technikák alkalmazásának jelentős szerepe van. Kulcsszavak: párhuzamos számítástechnika, operációs rendszerek, programozás, GPGPU Abstract: The computing became multi-threaded and multi-cored. Accordingly, parallel computing has changed and in modified new form became dominant again, and there is a growing demand from students with IT skills: the deep expected knowledge of this area. That is why we planned to answer this need with a set of courses (parallel computing module) that we have developed and that focuses on the parallel computing theory and practice also, but mainly the novel techniques are emphasized in the courses. After the introductory foundation, which summarizes the parallel architecture and operating system-level background, the basic techniques of parallel and multi-threaded programming, practical learning is followed by the currently used environments in which both the multi-core processors and GPGPU-s are included. Using the knowledge of the practical laboratory tasks and projects the students could choose an elective course (computer graphics) where the learned parallel techniques play an important role also. Keywords: parallel computing, operating systems, programming, GPGPU 1 Óbudai Egyetem, Neumann János Informatikai Kar, vamossy.zoltan@nik.uni-obuda.hu 2 Óbudai Egyetem, Neumann János Informatikai Kar, sima@uni-obuda.hu 3 Óbudai Egyetem, Neumann János Informatikai Kar, szenasi.sandor@nik.uni-obuda.hu 4 Óbudai Egyetem, Neumann János Informatikai Kar, rovid.andras@nik.uni-obuda.hu 5 Óbudai Egyetem, Neumann János Informatikai Kar, karasz.peter@nik.uni-obuda.hu 6 Óbudai Egyetem, Neumann János Informatikai Kar, miklos.arpad@nik.uni-obuda.hu 7 Óbudai Egyetem, Neumann János Informatikai Kar, sergyan.szabolcs@nik.uni-obuda.hu 8 Óbudai Egyetem, Neumann János Informatikai Kar, toth.akos@bgk.uni-obuda.hu

1. Bevezetés A számítástechnikai technológiai fejlődés szempontjából az egyik nyilvánvalóan kiemelendő trend a számítástechnikai eszközök alapját képező processzorok többmagossá/többszálúvá válása, és ezzel összefüggésben a szekvenciális programozással szemben a párhuzamos többmagos/többszálas programozás meghatározó szerepének megjelenése. A szakemberek hiánya a többmagos/többszálas processzorok és programozásuk területén már ma is a gazdaság fejlődésének korlátjává vált különösen a biztosítók, bankok, pénzügyi szolgáltatók körében. Karunk kiterjedt vállalati kapcsolatrendszerén keresztül pontos képet kapunk e terület munkaerő-igényéről, amely folyamatosan növekvő tendenciát mutat. Ezt az igényt terveztük kielégíteni, amikor 2010/2011-ben TÁMOP pályázati támogatással kidolgoztunk egy olyan modult, amelynek középpontjában a párhuzamos számítástechnika elméleti háttere mellett a gyakorlatra, az új technikák alkalmazásának elsajátítására helyeződött a hangsúly. A bevezető alapozást, mely összefoglalja a párhuzamos architekturális és operációs rendszer szintű hátteret, valamint a párhuzamos programozás alaptechnikáit, a többszálas programozás gyakorlati elsajátítása követi a jelenleg használatos környezetekben, amelyekbe a többmagos processzorok ugyanúgy beletartoznak, mint a GPGPU-k (általános célú grafikai feldolgozó egységek) adta lehetőségek. A gyakorlati kompetenciákat biztosító laboratóriumi feladatok és projektek elvégzése/megoldása mellett egy választható tárgy keretében a kidolgozott modult választó hallgatók egy olyan alkalmazási területtel is megismerkednek, ahol az elsajátított technikák alkalmazásának jelentős szerepe van. A modulhoz tartozó tárgyak az alábbiak: Párhuzamos rendszerek architektúrája Párhuzamos operációs rendszerek Többszálú/többmagos processzorarchitektúrák és programozásuk Masszívan párhuzamos programozás GPGPU-k alkalmazásával Algoritmusok optimális megvalósítása párhuzamos környezetben Projektlabor Valósidejű háromdimenziós grafika és képfeldolgozás. 2. A kidolgozott tantárgyak bemutatása 2.1. Párhuzamos rendszerek architektúrája A tantárgy keretei között a hallgatók megismerkednek a párhuzamos és elosztott rendszerek, és ezen belül a szerverek, a tároló hálózatok sajátosságaival, felépítésével, az alkalmazási környezet által támasztott teljesítmény-, megbízhatósági-, és biztonsági elvárásokkal, valamint adott elvárásoknak eleget tevő szerver rendszerek kialakításának szempontjaival, módjával. Az előadásokon hangsúlyt kapnak a különböző virtualizáló megoldások, amelyek megértését gyakorlati bemutatók is segítik. A tárgy szemléletmódja a tervezési tér koncepcióra épít, és előtérbe helyezi a konkrét megvalósítási példák és trendek bemutatását. A tantárgy főbb tématerületei: Tároló rendszerek. A hálózati tárolás szabványosítása (SNIA), a hálózati tárolás technológiái (DAS, SAN, NAS), eszközei, protokolljai, szoftverei, konkrét megvalósításai, termékei, megbízhatósága, biztonsági kérdései, menedzsmentje. Tároló rendszerek a gyakorlatban Az iscsi hálózati tárolás gyakorlati megvalósításának bemutatása. Többmagos/sokmagos processzorok. Főbb osztályaik, homogén többmagos, homogén sokmagos processzorok, heterogén mester-szolga és csatolt többmagos processzorok, reprezentatív megvalósítások.

Két és négy processzoros szerver architektúrák. Intel/AMD két és négy processzoros szervercsaládjai, két és négy processzoros szerverek rendszerarchitektúrájának fejlődése, jellemző megvalósítások. Penge szerverek rendszerarchitektúrája. Alternatívák, jellemző megvalósítások, alkalmazások. Szerver rendszerarchitektúrák adatbiztonsági, megbízhatósági kérdései. A rendszerelemek (processzor, memória, háttértár, tápegység, stb.) rendelkezésre állására, megbízhatóságára vonatkozó elvárások, megvalósítási technikák (ECC, chipkill, RAID, stb.). 2.2. Párhuzamos operációs rendszerek A tantárgy keretei között a hallgatók megismerkednek a többmagos környezetben működő operációs rendszerek sajátosságaival, az egyes operációs rendszeri funkciók elemzésén és tervezési terének bemutatásán túl elterjedt szerver operációs rendszerekből származó példákon keresztül megtörténik a megvalósítás lehetőségeinek áttekintése is. A tárgy az Operációs Rendszerek BSc tárgy keretei között elhangzó ismeretekre épít, célja az általános (az operációs rendszerek mindegyikét felölelő) ismeretek mélyítése a szerver megoldások témakörére fókuszálva. A tantárgy előadásainak tartalma: Párhuzamos és elosztott környezetet támogató operációs rendszerek struktúrája, szerver operációs rendszerek felépítésével kapcsolatos elvárások, megvalósítás lehetőségei, kernel funkciók hatékony működésének megvalósítása többprocesszoros szorosan csatolt (SMP) architektúrákon. Párhuzamos és elosztott feldolgozást támogató rendszerek mechanizmusai, Folyamatok és szálak kezelése többprocesszoros környezetben. Szálak kezelése multithreading, hyperthreading technológiákat támogató processzorok esetében, processzorok ütemezése. Memória menedzsment, Hatékony és megbízható memóriakezelés kialakítása, különböző implementációk összehasonlító elemzése, kernel memória dinamikus kezelése. I/O kezelés; Fájlrendszerek és állományok kezelése, Fájlrendszerrel szemben megfogalmazott elvárások ismertetése, a fájlrendszerek tervezési terének áttekintése, szerepek szerinti erőforrás hozzáférés (RBAC), teljesítmény (fájlrendszerek struktúrája), flexibilitás (egységes interfészek, a Vnode/Vfs architektúra). Virtualizáció operációs rendszeri szinten. Virtualizációs technikák ismertetése, hatékony és megbízható működéshez szükséges operációs rendszeri szolgáltatások áttekintése, főbb megvalósítások áttekintése, virtualizáció processzor szintű támogatása; Elosztott rendszerek OR szintű támogatása, Elosztott rendszerek tervezési tere, elosztott rendszerek operációs rendszer szintű támogatásának ismertetése. A gyakorlati anyagrész: Windows Management Instrumentation (WMI) alkalmazásának bemutatása, példákon keresztüli gyakorlás. WMI lehetőségeinek bemutatása többmagos processzorokra fókuszálva. Windows 2008 Server és Windows XP kernel debuggolásának ismertetése. Kernel debuggolás haladó technikái. A párhuzamos architektúrák lehetőségeit támogató korszerű programozási eszközök bemutatása (Nvidia CUDA). 2.3. Többszálú/többmagos processzorarchitektúrák és programozásuk A tárgy keretében a hallgatók elmélyítik az alapképzésben szerzett a párhuzamos rendszerekkel kapcsolatos tervezési és programozási ismereteiket. A hallgatók megismerik és elsajátítják a párhuzamos programozás technikáit, a folyamat- és szálkezelést, a szálak közti kommunikáció módozatait és a szinkronizáció módszereit. A tantárgy kitekintést nyújt az elosztott rendszerek programozásának különböző változatairól.

A tananyag fő elemei: A párhuzamos rendszerek áttekintése, és programozásuk kiemelt kérdései. Párhuzamos programozás alapjai. Folyamatok. Szálkezelés. Szinkronizáció. Hibakeresés, nyomkövetés párhuzamos környezetben. Elosztott szoftver-architektúrák. Párhuzamos programozási algoritmusok. Diszkrét optimalizálás. Dinamikus programozás. Képfeldolgozás párhuzamosított technikával. Kitekintés a masszívan párhuzamos programozásra, GPGPU. MPI programozás alapok. 2.4. Masszívan párhuzamos programozás GPGPU-k alkalmazásával A processzor architektúrák elmúlt években bekövetkezett fejlődésének egyik szignifikáns eredménye az általános célú grafikai kártyák (GPGPU-k) és az alkalmazásukhoz szükséges szoftver programozási környezetek megjelenése. A tárgy keretében a hallgatók megismerkednek a GPGPU-k általános felépítésével, a legfontosabb reprezentáns architektúrákkal, programozási környezetekkel. Ezt követően gyakorlati ismereteket szereznek az adatpárhuzamos programozási modellen keresztül történő feladatmegoldásban, a számításigényes feladatok futásának gyorsításában GPGPU-k alkalmazásával. A tantárgy előadásának tartalma: GPGPU architektúrák felépítése. OpenCL specifikáció. CUDA programozási környezet alapok. Hagyományos és adatpárhuzamos algoritmusok áttekintése. Rendezések. Véletlenszám generálás. Kriptográfia. Képmanipuláció. A gyakorlatok anyaga: C/C++ nyelvi alapok áttekintése/átismétlése. CUDA programozási környezet alapok. Egyszerű mátrix műveletek. Gridek, atomi műveletek. Egyszerű adatpárhuzamos algoritmusok implementálása. Programozási tételek, mátrixműveletek. Adatpárhuzamos rendezési algoritmusok implementálása. Radix, hatékonysági vizsgálat. Párhuzamos véletlenszám generáló algoritmusok implementálása. Statisztikai feladatok. Kriptográfiai algoritmusok implementálása. Kódolások. Dekódolások, brute force-os feltörési módszerek.

2.5. Algoritmusok optimális megvalósítása párhuzamos környezetben A tárgy keretében a hallgatók megismerkednek a különböző összetett és gyakran alkalmazott algoritmusok és adatszerkezetek elemzésének és elosztott számítógépes környezetekben való hatékony implementálásának módszereivel. A tárgy célja a korábbi félévek elméleti és gyakorlati tárgyai során megszerzett algoritmus- és adatszerkezet-ismeretekre építve komplexebb gyakorlati problémák optimális megoldásának megismerése, az algoritmusok implementálásának gyakorlása elosztott környezetekben. A tantárgy részletes tartalma: Elosztott algoritmusok elemzési módszerei. Rendezések, keresések és kiválasztások elosztott környezetben. Adatszerkezetek elosztott megvalósításai. Tömbök, listák, fák, gráfok. Elosztott rekurzió, numerikus módszerek. Egyenletrendszerek megoldása, approximáció és interpoláció. Gráfalgoritmusok elosztott környezetben. Bejárások, útkeresések, tranzitív lezárt, topologikus rendezés, erősen összefüggő komponensek. Adattömörítés a kommunikációban. Huffman-kód, aritmetikai tömörítés, LZ77, LZ78, LZW algoritmus, Burrows-Wheeler transzformáció. Kriptográfiai algoritmusok alkalmazása a kommunikációban. Szimmetrikus algoritmusok, aszimmetrikus algoritmusok. 2.6. Projektlabor A tárgy keretén belül a hallgatók megismerik a kutatás és fejlesztés módszertanát, betekintést kapnak különböző kutatási és fejlesztési feladatok megvalósításának egyes fázisaiba. A tananyag elemei: Irodalomkutatás: Milyen irodalomra célszerű rákeresni és milyen tudományos weboldalak, publikus tudományos adatbázisok állnak rendelkezésre. Projekt munkaterv kidolgozásának fázisai, az egyes fázisok részletezése. Miket tartalmazzon a munkaterv (tartalmi és formai követelmények). Eredmények publikálása és prezentálása. Az eredmények tudományos folyóiratokban, ill. konferenciákon való prezentálásához szükséges tudnivalók. Hogyan nézzen ki a prezentációs anyag, miket tartalmazzon. Latex szövegszerkesztő használatának ismertetése. Hol és hogyan publikáljuk eredményeinket (folyóiratok, konferenciák, stb.). Impakt faktor (mit fejez ki, milyen szerepet játszik a bírálati folyamatokban). Nem független, független hivatkozások és önhivatkozások (ezek jelentősége). Pályázatok írása. Milyen típusú kutatási, fejlesztési pályázatok fordulnak elő. Hogyan adjunk be pályázatot (általános tartalmi és formai követelmények). Részjelentés, zárójelentés készítése (mit kell tartalmaznia egy jelentésnek). 2.7. Valósidejű háromdimenziós grafika és képfeldolgozás A kurzus célja, hogy a hallgatók gyakorlati tapasztalatot szereznek korszerű, valósidejű háromdimenziós grafikus alkalmazások fejlesztésében. A tantárgy anyaga a következő: Bevezetés. A számítógépes grafika és a 3D alkalmazások történeti áttekintése. Képalkotási módok (sugárkövetés, globális illumináció, képszintézis). A valós idejű megjelenítés és animáció fogalma. A 3D képszintézis alapelvei és lépései. Modellezés, tesszelláció, transzformációk szükségessége, vágás, takarási feladat, árnyalás. Grafikai szabványok áttekintése. OpenGL, Direct3D és összehasonlításuk. Direct3D komponensei, felépítése, főbb jellemzői. Direct3D alapú alkalmazások szerkezete + wrapperek. Példaprogram: Direct3D inicializálása C# alkalmazásban.

A fix funkciós futószalag (FFP) bemutatása és működése. Az FFP által nyújtott lehetőségek és korlátok. Primitívek definiálása, vertex attribútumok és vertex formátumok, megjelenítési állapotok állítása. Példaprogram: ismerkedés a transzformációkkal, egyszerű primitívek definiálása és animálása (FFP segítségével). A fix funkciós futószalag további lehetőségei. Vertex pufferek, megvilágítás, textúrázás, átlátszóság, köd. Objektumtárolási lehetőségek: listák, színtér gráfok (fák), térparticionálás. Példaprogram: több objektum megjelenítése különböző technikákkal (átlátszó, textúrázott, megvilágított, stb.). További megjelenítési lehetőségek. Indexelt geometria használata (előnyei, működése). Speciális textúrák (1D textúrák, 2D textúrák, 3D textúrák, kocka textúrák). Rajzolási célfelületek (render targets), rajzolás textúrákra. Élsimítás. Tükröződés. Példaprogram: példaprogram indexelt geometria támogatására, kocka textúrák használata (skybox). A programozható futószalag (PP) bemutatása és működése. A PP által nyújtott lehetőségek. Ismerkedés a HLSL magas szintű shader programozási nyelvvel. A programozható futószalag lehetőségei. Ismerkedés egyszerű HLSL shaderekkel (az eddig ismert megjelenítési technikák HLSL-lel megvalósított változatai). Példaprogram: Gouraud és Phong árnyalást megvalósító shaderek. Komplexebb megjelenítési technikák. Csontváz és kulcskocka animáció, részecske rendszerek, vízfelszín szimuláció, terep megjelenítés, égbolt megjelenítés, progresszív testhálók, stb. Példaprogram: egyszerű részecske rendszer implementáció. Utófeldolgozási technikák. Bevezetés a képfeldolgozás alapjaiba. A képszintézis utófeldolgozási lépésének működése. A GPU alapú képfeldolgozás lehetőségei, előnyei, és korlátai. HLSL pixel árnyaló vs. C# kódok áttekintése (invertálás, világosítás, kontraszt állítás, gamma állítás, képek deriválása, aluláteresztő szűrők (Gauss, átlagolás)). Példaprogram: invertálás, kontraszt, gamma, és Gauss szűrők kipróbálása HLSL kóddal. 3. Összegzés A tantárgyak anyagainak tesztelése és pontosítása céljából több kurzust indítottunk már Párhuzamos rendszerek architektúrája, a Párhuzamos operációs rendszerek, a Többszálú/többmagos processzorarchitektúrák és programozásuk, a Masszívan párhuzamos programozás GPGPU-k alkalmazásával és az Algoritmusok optimális megvalósítása párhuzamos környezetben témákban jelenleg még csak különálló választható tantárgyanként. A hallgatói visszajelzések a gyakorlatorientált szemlélet és a kidolgozott, számos megoldásmintát pozitívan értékelték. 4. Köszönetnyilvánítás A modul kifejlesztéséhez segítséget nyújtott a TÁMOP - 4.1.2-08/2/A KMR Tananyagfejlesztés és tartalomfejlesztés különös tekintettel a matematikai, természettudományi, műszaki és informatikai (MTMI) képzésekre pályázat forrása, melyet ezúton is köszönünk. A tantárgyakban felhasznált irodalmak jegyzéke Watts D., Davis R., Kroutov I. (2008) IBM BladeCenter, Products and Technology, RedBooks Orenstein G. (2003) IP Storage Networking: Straight to the Core, Addison Wesley Singhal R., Saquib Z. (2008) Continuous Available Commodity Storage, SNIA Education Clark T. (2005) Storage Virtualization, Technologies for Simplifying Data Storage and Management, Addison-Wesley Russinovich, Solomon (2009) Microsoft Windows Internals, 5th edition, Microsoft Press, USA Tanenbaum, Steen (2004) Elosztott rendszerek, Alapelvek és paradigmák, Panem Tanenbaum, Andrew S. (2008) Modern Operating Systems: International Edition, ISBN 9780138134594, Prentice Hall

Grama A., Gupta A., Karypis G., Kumar V. (2003) Introduction to Parallel Computing, 2nd edition Addison-Wesley, ISBN 0-201-64865-2 Wilkinson B., Allen M. (2005) Parallel Programming, 2nd edition, Prentice Hall Iványi A. (2005) Párhuzamos algoritmusok, ELTE Eötvös Kiadó, Budapest, http://elek.inf.elte.hu/parhuzamos online Akhter S., Roberts J. (2006): Multi-Core Programming (Increasing Performance through Software Multi-threading), Intel Press Albahari J. (2010) Threading in C#, http://www.albahari.com/threading/ Cormen T. H., Leiserson C. E., Rivest R. L., Stein C. (2003) Új algoritmusok, Scolar Kiadó, Budapest Eco U. (1994): Hogyan írjunk szakdolgozatot?, Gondolat Popper K. R. (1997) A tudományos kutatás logikája, Európa Majoros, P. (1997) Kutatásmódszertan, Budapest Szirmay-Kalos L., Antal Gy., Csonka F. (2003) Háromdimenziós grafika, animáció és játékfejlesztés, Computerbooks Nyisztor K. (2009) Shaderprogramozás grafika és játékfejlesztés DirectX-szel, SZAK kiadó Gonzales, Woods (2008) Digital Image Processing, 3rd edition. Prentice Hall