Závěrečná zpráva projektu Experimentální výpočetní grid pro numerickou lineární algebru

Podobné dokumenty
Závěrečná zpráva projektu Experimentální výpočetní grid pro numerickou lineární algebru

AKCELERACE EVOLUCE PRAVIDEL CELULÁRNÍCH AUTOMATŮ NA GPU

Návrhy elektromagnetických zení

BRDSM core: Komplexní systém dynamického řízení kvality plynule odlévané oceli

Část 2 POROVNÁNÍ VÝKONNOSTI A POUŽITELNOSTI ARCHITEKTUR V TYPICKÝCH APLIKACÍCH

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.

GPGPU Aplikace GPGPU. Obecné výpočty na grafických procesorech. Jan Vacata

NG C Implementace plně rekurentní

PŘEDSTAVENÍ GRAFICKÉHO PROCESORU NVIDIA G200

MATLAB a Simulink R2015b

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

GPU A CUDA HISTORIE GPU CO JE GPGPU? NVIDIA CUDA

REALIZACE SUPERPOČÍTAČE POMOCÍ GRAFICKÉ KARTY

Zřízení studijního oboru HPC (High performance computing)

Vyuºití GPGPU pro zpracování dat z magnetické rezonance

Povídání na téma SUPERPOČÍTAČE DNES A ZÍTRA

Stavba operačního systému

Nvidia CUDA Paralelní programování na GPU

GPGPU. Jan Faigl. Gerstnerova Laboratoř pro inteligentní rozhodování a řízení České vysoké učení technické v Praze

Úvod do modelování v programu COMSOL Multiphysics verze 4

PROCESOR. Typy procesorů

Neuropočítače. podnět. vnímání (senzory)

BRDSM: Komplexní systém dynamického řízení kvality plynule odlévané oceli

REKONFIGURACE FPGA. Božetěchova 1/2, Brno.

HW Diskové pole - 1KS

Pojem architektura je převzat z jiného oboru lidské činnosti, než počítače.

Virtualizace. Lukáš Krahulec, KRA556

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou.

Hlavní využití počítačů

Algoritmy a struktury neuropočítačů ASN - P14. Neuropočítače

MetaCentrum. Miroslav Ruda. listopad 2013 CESNET

Telekomunikační sítě Protokolové modely

Výpočetní zdroje v MetaCentru a jejich využití

Paralelní grafové algoritmy

Návrh a implementace algoritmů pro adaptivní řízení průmyslových robotů

METACENTRUM. Miroslav Ruda CESNET. Seminář MetaCentra, Praha

Nvidia CUDA Paralelní programování na GPU

SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ

GPU jako levný výpočetní akcelerátor pro obrazovou JPEG2000 kompresi. ORS 2011 Karviná,

Brno. 30. května 2014

Praha, Martin Beran

Datové struktury. Zuzana Majdišová

SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR

NEREALISTICKÉ ZOBRAZENÍ

Zřízení technologického centra ORP Dobruška

CERIT-SC. Luděk Matyska, David Antoš, Aleš Křenek

Počítačové sítě internet

Implementace numerických metod v jazyce C a Python

různých profesních oblastech

INTEGRACE IS DO STÁVAJÍCÍ HW A SW ARCHITEKTURY

2 Popis softwaru Administrative Management Center

Architektury počítačů

SOFTWARE PRO ANALÝZU LABORATORNÍCH MĚŘENÍ Z FYZIKY

Paralelní výpočty ve finančnictví

Knihovny pro CUDA J. Sloup a I. Šimeček

Hardwarová akcelerace HD videa v návaznosti na architektury čipu grafických karet

IT4Innovations centrum excelence. Vít Vondrák & Filip Staněk VŠB-Technická univerzita v Ostravě

Zabezpečená data. Radek Hranický Lukáš Zobal Vojtěch Večeřa

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Paralelní a distribuované výpočty (B4B36PDV)

aniel Dvořák, Martin Mičan Liberec Windows Server 2012/R2 Migrační scénáře

ARCHITEKTURA AMD PUMA

Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

Téma bakalářských a diplomových prací 2014/2015 řešených při

Všechno, co jste chtěli vědět o Gridech, ale báli jste se zeptat

Cvičení MI-PAP I. Šimeček, M. Skrbek, J. Trdlička

Úvod do GPGPU J. Sloup, I. Šimeček

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Paralelizace výpočtů v systému Mathematica

AKČNÍ NABÍDKA BAREVNÝCH NOTEBOOKŮ - 15,6"

Martin Lísal. Úvod do MPI

Herní PC HAL3000 Artemis výkonný lovec pro nekončící zábavu

VYHLEDÁNÍ NEJDELŠÍHO SHODNÉHO PREFIXU V FPGA

Operační systémy. Tomáš Hudec.

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

NUMERICKÉ ŘEŠENÍ VIBROIZOLACE STROJE

IMPLEMENTACE SYSTÉMU GROUPWISE NA PEF ČZU V PRAZE IMPLEMENTATION OF THE SYSTEM GROUPWISE ON THE PEF ČZU PRAGUE. Jiří Vaněk, Jan Jarolímek

SOFTWARE A POČÍTAČOVÉ SÍTĚ. Alice Nguyenová

Operační systémy. Přednáška 8: Správa paměti II

CCNA Network Upgrade

Tabulka splnění technických požadavků

Modernizace a inovace výpočetní kapacity laboratoří ITE pro účely strojového učení. Jiří Málek

Příloha A. Služby zajišťované Výpočetním centrem VŠE. (podle aktuálního stavu k )

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Architektura grafických ip pro Xbox 360 a PS3

Geekovo Minimum. Počítačové Grafiky. Nadpis 1 Nadpis 2 Nadpis 3. Božetěchova 2, Brno

Úvod do informačních technologií

Opakování k maturitní zkoušce z informatických předmětů

High-definition video ve výuce

ROZPOZNÁVÁNÍ AKUSTICKÉHO SIGNÁLU ŘEČI S PODPOROU VIZUÁLNÍ INFORMACE

Co je grafický akcelerátor

AGP - Accelerated Graphics Port

Miroslav Tichý, tic136

Jako příklady typicky ch hrozeb pro IT lze uvést: Útok

Virtualizace koncových stanic Položka Požadováno Nabídka, konkrétní hodnota

Použití softwaru VisVAP pro vývoj nových systémů řízení dopravy aplikace fuzzy algoritmů pro LŘD a SSZ.

Matematika v programovacích

HW počítače co se nalézá uvnitř počítačové skříně

Aktivní prvky: brány a směrovače. směrovače

Transkript:

Závěrečná zpráva projektu Experimentální výpočetní grid pro numerickou lineární algebru Ing. Ivan Šimeček Ph.D., Zdeněk Buk xsimecek@fit.cvut.cz, bukz1fel.cvut.cz Červen, 2012 1 Zadání Paralelní zpracování dat je často jedinou možnou metodou zvyšování výpočetního výkonu algoritmů. Programy jsou často upravovány tak, aby jistou míru paralelizace podporovaly. Programy pro vědeckotechnické výpočty často používají numerické knihovny pro lineární algebru se standardním rozhraním (BLAS, LAPACK) pro většinu svých výpočtů a prováděním těchto rutin stráví většinu doby běhu. Pro urychlení celého programu je tedy důležité maximálně urychlit hlavně tyto rutiny. Řešením je poslání dat na specializovaný výpočetní grid, zde se provede potřebný výpočet (tzn. rutiny z knihovny), poté je výsledek zaslán zpátky uživateli. Dalším novým trendem v urychlení zpracování je možnost provádět negrafické (rozuměj matematické) výpočty na grafických kartách. Grafické karty mají dechberoucí poměr výkonu a ceny a umožňují tak postavit levný klastr se slušným výpočetním výkonem. 2 Cíle Celý projekt je řešen v rámci dvou podprojektů: CUDA Networks a EGNLA (Experimental grid for numerical linear algebra) 2.1 CUDA Networks Cílem podprojektu CUDA Networks je vytvoření platformy pro simulaci populací rekurentních neuronových sítí, přístupných uživatelům systému Wolfram Mathematica v režimu klient-server. Serverová část realizuje vlastní simulaci neuronových sítí na GPU. Klientská část zprostředkovává rozhraní mezi serverovou částí a prostředím Wolfram Mathematica. Takže cíle tohoto podprojektu jsou: 1

Simulace množiny (populace) sítí, umožňující využití simulátoru v evolučních algoritmech Využití architektura client-server tak, aby pracovní stanice, kde budou výsledky simulace použity, nemusela být vybavena výkonnou grafickou kartou a veškeré výpočty probíhaly na výpočetním serveru. Volba vhodné platformy (AMD vs. NVidia, CUDA vs. OpenCL). 2.2 EGNLA Cíle podprojektu EGNLA jsou: 1. Implementace paralelní verze rutin pro výpočty na grafických kartách. 2. Úprava rozhraní některých rutin z matematických knihoven. Pokud uživatel potřebuje provést nějaký výpočet, klientská část (přesněji heuristika uvnitř) vyhodnotí, zda se vyplatí poslat výpočet na grid (či to spočítat lokálně), pokud ano, zašle vstupní data na grid a počká na zaslané výsledky. 3. Vytvořit experimentální výpočetní grid, který bude podporovat výše uvedenou službu. Grid bude tvořen malým dedikovaným klastrem a dále nededikovanými částmi tvořenými nevyužitými výpočetními prostředky (např. počítače ve školních učebnách mimo výuku).výpočet je možno provádět na CPU nebo na GPU (procesoru grafické karty) 3 Postup a způsob řešení 3.1 CUDA Networks Pro volby vhodné implementační platformy byly realizované výkonové testy. Výsledkem byla volba platformy CUDA, která vykazovala podstatně menší režii výpočtů. Implementace serverové i klientské části je realizována v jazyce C/C++. Pro komunikaci mezi výpočetním prostředím Wolfram Mathematica a naší klientskou aplikací je využita technologie MathLink. Simulátor implementuje plně rekurentní heterogenní neuronovou síť. Jedná se univerzální topologii, schopnou simulovat jakékoliv propojení neuronů (každá taková síť je podgrafem plně propojeného symetrického orientovaného grafu), kdy každý neuron může mít unikátní aktivační funkci. Pro učení neuronových sítí byl implementován gradientní algoritmus Realtime Recurrent Learning. Tento algoritmus může být využit jako lokální učení v hybridním evolučním algoritmu. Pro podporu evolučního učení nabízí simulátor možnost akcelerace celé skupiny nezávislých sítí (populace jedinců). 2

Pro práci z prostředí Wolfram Mathematica jsou k dispozici funkce, které transformují datové typy systému Wolfram Mathematica do C/C++ a zabezpečují komunikaci se serverovou částí simulátoru. Client Machine CPU Mathematica MathLink Client Program TCP/IP Server Machine CPU Server program Service procedures GPU Neural Networks Memory Memory Memory Obrázek 1: Struktura aplikace. 3.2 EGNLA 3.2.1 První etapa Na začátku byl zprovozněn pouze server služby. Byly na něm nainstalovány volně stažitelné implementace knihoven pro numerickou lineární algebru (GOTO a ATLAS), dále implementace knihovny pro výpočty na grafických kartách (CUBLAS). Byla vytvořena základní verze klientské i serverové části rozhraní k těmto knihovnám, byly na ní provedeny zátěžové testy sloužící k stanovení parametrů heuristiky v klientské části, která vyhodnocuje, zda se vyplatí použít nelokální výpočet. 3.2.2 Druhá etapa Následně byly zprovozněny počítače tvořící malý výpočetní klastr. Na tomto klastru byly vyvíjeny vlastní paralelní implementace některých rutin pro výpočty na grafických kartách. Dále byl implementován plugin do algebraického SW Mathematica 3.2.3 Konfigurace testovacího clusteru Cluster se skládá z hlavního uzlu (alpha) za kterým jsou přes gigabytový switch připojeny ve vnitřní síti další čtyři uzly (beta, gamma, delta, epsilon). Dostali jsme přiděleny pouze dvě internetové adresy a podle toho jsme museli zasíťovat cluster: První adresu jsme použili pro uzel alpha (gpgpu-fit.cvut.cz) přes který se následně přistupuje na další uzly Druhou adresu jsme použili pro elektrickou zásuvku (sprinx.fit.cvut.cz), která napájí uzel alpha. Tím ho můžeme restartovat v případě potřeby. Ve vnitřní síti je pak připojena další internetová zásuvka pro případný restart vnitřního uzlu. Pro potřeby 3

testování se uzly clusteru liší svou hardwarovou konfigurací. Některé mají horší CPU, další více paměti. Uzly napájí zásuvky ovladatelné přes internet. Současná konfigurace clusteru: alpha: Intel Core i5@2.8ghz, NVIDIA GeForce GTX 480, 4GB RAM beta: Intel Core i5@2.8ghz, 4GB RAM, NVIDIA GeForce GTX 480 gamma: Intel Core i5@2.8ghz, 4GB RAM, NVIDIA GeForce GTX 470 delta: Intel Core2 Quad@2.33GHz, 4 GB RAM, NVIDIA GeForce GTX 470 epsilon: Intel Core i7@3.07ghz, NVIDIA GeForce GTX 590, 24GB RAM Ostatní zařízení: gigabytový switch zajišťující komunikaci ve vnitřní síti clusteru 2 elektrické zásuvky ovládané pře internet (webové rozhraní), které umožňují kdykoli restartovat libovolný uzel clusteru. Uzel alpha poskytuje uzlům clusteru následující služby: authorizace (uživatelské účty jsou sdílené) NFS server (home adresáře jsou sdílené) DHCP server pro přidelování IP adres ve vniřní síti (podle MAC adresy) Routování a NAT (umožňuje přístup uzlům na Internet) cache pro Ubuntu balíky (rychlejší instalace software) CUDA SDK (všechny uzly používají stejnou verzi) 3.2.4 Třetí etapa Proběhly výkonnostní testy a odlazování celého systému. Byla analyzována podpora dalších knihoven např. GMP, FFTW, PETSc apod. Byly navrženy způsoby jak vhodným způsobem komprimovat komunikaci server-klient a obráceně zejména pro zasílání velkých řídkých matic. 3.3 Poznatky z provozu V současné době dochází k přetížení uzlů. Zejména front-end uzlu alpha. Zátěž dosahuje vysokých hodnot a paměti na grafické kartě není dost pro běžící úlohy. Cluster je umístěn v neklimatizované místnosti, což bylo nejspíše příčinou poměrně častých výpadků uzlů. 4

4 Zdůvodnění změn v projektu V průběhu řešení projektu se narazilo na několik problémů, které nebylo možno v průběhu projektu vyřešit: 4.1 Možnost zapojení počítačů v učebnách Možnost zapojení počítačů v učebnách do výpočtu byla sice navržena, ale nebyla realizována z několika důvodů: Přísná bezpečnostní politika FIT ČVUT, která omezuje možnosti komunikace výpočetních uzlů mimo doménu FIT a obecně běh neprověřených služeb na školních počítačích. Tyto počítače jsou určeny primárně pro výuku. Bohužel při provádění kódu v CUDA API dochází k citelnému snížení rychlosti běhu OS pro ostatní uživatele. Komunikační knihovna MPI nepodporuje tuto dynamickou rekonfiguraci, musela by dojít k jejímu výraznému přepsání. Tyto počítače jsou v nočních hodinách (ale i během dne) vypínány, což by způsobovalo problémy, protože aplikace neobsahuje podporu checkpointingu. 4.2 Měření parametrů propojovací sítě Bylo plánováno periodické měření rychlosti a latence jednotlivých spojů. Toto ale zvyšuje zbytečně komunikační zatížení jednotlivých spojení proto je použita jiná metoda: při ustavení spojení je zjišťována pouze latence a rychlost je nastavena na danou defaultní hodnotu. Teprve při zaslání větších datových struktur je změřena skutečná rychlost spojení. 4.3 Vnitřní logika programu Bylo nutné přeprogramování některých částí kódu, neboť došlo ke změně celkové koncepce výpočtu na gridu: v původní koncepci byly přenášeny sítí všechny vstupní operandy a výsledky pro každou operaci zvlášť. Provádění veškerých operací bylo striktně odděleno a bylo blokující. Toto ale vedlo k velkému zatížení sítě a malé efektivitě nasazení gridu (byl využitelný jen pro malou množinu operací). Pro minimalizaci vlivu zpoždění a propustnosti sítě byl celý koncept gridu přepracován. Nyní si grid umožňuje ukládat i mezivýsledky a pořadí vyhodnocení není dáno programově, ale datovými závislostmi, což i zvýší míru paralelismu v provádění. 5

5 Konkrétní výstupy 5.1 Deklarované Hmatatelné výsledky projektu budou: Pro projektu vzniknou stránky. Pro programy vzniklé během řešení projektu vzniknou stránky na serveru SourceForge. Pro členy sdružení bude k dispozici nová služba. Novinky a pokyny budou zveřejňovány na výše uvedené stránce. Výsledky projektu (vytvoření gridu, paralelní GPU algoritmy) budou prezentovány na tuzemských (SNA, MEMICS) i zahraničních (SY- NASC, PPAM) konferencích Plugin do SW Mathematica bude zveřejněn na diskuzním fóru věnované tomuto programu. 5.2 Dosažené Výsledky dosažené v rámci řešení tohoto projektu byly publikovány na těchto konferencích: O myšlence gridu byly publikovány 3 články: 1. na tuzemské konferenci "Seminář numerické analýzy"(sna 11), 2. na tuzemské konferenci "MEZINÁRODNÍ KONFERENCE PRE- ZENTACE MATEMATIKY 11"(ICPM 11), 3. na zahraniční konferenci "11th International Conference on Applied Mathematics"(APLIMAT 2012). Tento příspěvek byl vybrán i do časopisu (APLIMAT Journal). O použití CUDA Networks proběhla vyzvaná přednáška [4]. O řešení problémů souvisejících s gridem byly publikovány tyto příspěvky: 1. na tuzemské konferenci SNA12: "Modular Arithmetic for Solving Linear Equations on the GPU", 2. na tuzemské konferenci SNA12: "Space-efficient sparse matrix storage formats with 8-bit indices", 3. na tuzemské konferenci ICPM11: "Improvement of shortest path algorithms through graph partitioning", 4. na prestižní zahraniční konferenci HPCC2012: "Space-efficient sparse matrix storage formats for massively parallel systems" 6

6 Dosažené cíle, závěr a přínosy 6.1 CUDA Networks Všechny cíle projektu byly splněny. Simulátor neuronových sítí včetně učícího algoritmu, který z hlediska paralelizace výpočtů na GPU představoval nejobtížnější úkol, byl otestován a shledán funkčním. V rámci projektu vznikla platforma pro výpočty akcelerované na GPU s využitím technologie CUDA, umožňující uživatelům počítat v režimu clientserver. Uživatelé mají možnost výpočty zadávat a zpracovávat ve vysokoúrovňovém jazyce a prostředí systému Wolfram Mathematica. 6.2 EGNLA Téměř všechny cíle projektu byly splněny, některé se ukázaly jako nerealizovatelné. Oproti zadání byl v rámci projektu navíc vyvinut řešič soustav lineárních rovnic v přesné aritmetice akcelerovaný pomocí GPU a některé pokročilé metody komprese velkých řídkých matic. 7 Další využitelnost a možnosti vývoje 7.1 CUDA Networks Aktuální rozvoj technologií umožňuje zjednodušení implementace. Systém Wolfram Mathematica v poslední verzi implementuje přímou podporu CUDA a OpenCL do výpočetního jádra i možnost načítání vlastních dynamických knihoven v C/C++ přímo do běžícího výpočetního jádra. Ačkoliv by implementace simulátoru s využitím těchto možností byla snazší (např. režii okolo GPU, transformace dat atd. řeší nyní přímo systém Wolfram Mathematica), naše řešení stále nabízí nezanedbatelnou výhodu v možnosti spustit FrontEnd systému Wolfram Mathematica, výpočetní kernel a akcelerovaný GPU simulátor neuronových sítí každý na samostatném počítači a snadno tak rozložit výkonové požadavky. 7.2 EGNLA 7.2.1 Checkpointing Aplikace zatím postrádá možnost uložení všech datových struktur (checkpointing mechanismus). 7.2.2 Reakce na signály Aplikace zatím postrádá schopnost reagovat na signály v rámci OS, která by vedly k např. uložení datových struktur. 7

7.2.3 Dedikovaný server Je zvažována možnost instalace služby na některý dedikovaný server a provoz řídit plánovačem, ale je obtížné (někdy i nemožné) odhadnout dobu výpočtu pro zařazení do správné fronty. Vzhledem k dynamicky měnícímu se vytížení je těžké určit dobu, za kterou bude naplánovaný výpočet opravdu spuštěn. 7.2.4 Jiné programové řešení Aplikace je zatím navržena jako jeden proces ve kterém pro jednotlivé spojení vznikají vlákna, stejně tak pro výpočty vznikají nová vlákna. Ale jakákoliv chyba vede ukončení proces a tudíž i celé aplikace. 7.2.5 Grafové algoritmy Grid by bylo vhodné rozšířit o podporu alespoň základních grafových algoritmů. Jako obtížnou se ukázala integrace s existujícími programy pro grafové algoritmy z důvodu neexistence standardizovaného formátu pro reprezentaci grafů. 7.2.6 Bezpečnost nebo fair-user policy Autentizace není uživatelů služby není zatím prováděna. Není prováděno žádné šifrování, je kladen velký důraz na rychlost, navíc se nepředpokládá zasílání nějakých citlivých dat. Není zatím plánována žádná fair-user policy, grid je navržen spíše jako experimentální. Toto by bylo řešeno v rámci jeho případného dalšího rozvoje. 8 Tisková zpráva Výsledkem řešení projektu Cesnetu Experimentální výpočetní grid pro numerickou lineární algebru je vytvoření platformy pro simulaci populací rekurentních neuronových sítí, přístupných uživatelům systému Wolfram Mathematica v režimu klient-server. Aktuální verze je k dispozici na http://evolution. felk.cvut.cz/cuda/ vytvoření programu pro distribuované výpočty na grafických kartách. Aktuální verze je k dispozici na http://shimi.webzdarma.cz/vyzkum/ egnla/egnla.html Reference [1] Z. Buk and M. Šnorek. Hybrid evolution of heterogeneous neural networks. In V. Kůrková, R. Neruda, and J. Koutník, editors, Artificial 8

Neural Networks - ICANN 2008, 18th International Conference, Prague, Czech Republic, September 3-6, 2008, Proceedings, Part I, volume 5164 of Lecture Notes in Computer Science, pages 426 434, Berlin, Heidelberg, 2008. Springer-Verlag. [2] Z. Buk and M. Šnorek. Continual Evolution Algorithm for Building of ANN-based Models. In Proceedings of the 6th EUROSIM Congress on Modelling and Simulation, volume 2007, Ljubljana, Slovenia, 2007. [3] Z. Buk and M. Šnorek. High-performance implementation of Recurrent Neural Networks on Graphics Processing Units. In Proceedings of the 7th EUROSIM Congress on Modelling and Simulation, volume 2: full papers, pages 1312 1315, Prague, Czech Republic, Sept. 2010. Czech Technical University in Prague. [4] Z. Buk. Akcelerace vědecko-technických výpočtů v systému Mathematica pomocí technologie nvidia CUDA. Ústav Fyziky, Filozofickopřírodovědecká fakulta, Slezská univerzita v Opavě, 2011. [5] R. J. Williams and D. Zipser. A Learning Algorithm for Continually Running Fully Recurrent Neural Networks, 1989. 9