Využijte plný výkon procesorů s více jádry v LabVIEW 8.5



Podobné dokumenty
Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

4. Úvod do paralelismu, metody paralelizace

Procesy a vlákna (Processes and Threads)

Silný výkon dvoujádrové architektury pro podnikání dnes i zítra

Výkonnost mikroprocesoru ovlivňují nejvíce dvě hlediska - architektura mikroprocesoru a tzv. taktovací frekvence procesoru.

Architektura Intel Atom

LabVIEW přes 20 let inovací

Základní informace. Operační systém (OS)

Paralelní programování

LABORATORNÍ CVIČENÍ Střední průmyslová škola elektrotechnická

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Představení a vývoj architektur vektorových procesorů

OPS Paralelní systémy, seznam pojmů, klasifikace

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

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty

Controlweb. Úvod. Specifikace systému

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Principy operačních systémů. Lekce 1: Úvod

Procesor. Hardware - komponenty počítačů Procesory

Témata profilové maturitní zkoušky

Představení procesorů od firmy Tilera a jejich architektura

Inženýr IT a řídících systémů

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Matematika v programovacích

Autodesk AutoCAD 2020

Roman Výtisk, VYT027

Pokročilé architektury počítačů

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Architektura počítačů

Profilová část maturitní zkoušky 2014/2015

VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE

Specializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů.

1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4

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

Pohled do nitra mikroprocesoru Josef Horálek

Flow-X PRŮTOKOMĚR. On-line datový list

Obr. 1. Grafické programovací prostředí LabVIEW

Architektura procesoru ARM

Úvod. Programovací paradigmata

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

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Prostředí pro výuku vývoje PCI ovladačů do operačního systému GNU/Linux

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Flow-X PRŮTOKOMĚR. On-line datový list

Operační systém. Logické prostředky výpoč etního systému jsou:

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Profilová část maturitní zkoušky 2017/2018

Úvod do Linuxu. SŠSI Tábor 1

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

PROGRAMOVÁNÍ PRO MS WINDOWS 2

Profilová část maturitní zkoušky 2013/2014

Profilová část maturitní zkoušky 2015/2016

Virtuální instrumentace I. Měřicí technika jako součást automatizační techniky. Virtuální instrumentace. LabVIEW. měření je zdrojem informací:

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 TECHNICKÉ VYBAVENÍ POČÍTAČŮ

VIRTUALIZACE POČÍTAČE HISTORIE A VÝVOJ

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

Průmyslové roboty a manipulátory, průmyslové počítače, PLC, řídicí systémy a operátorské panely

WD Blue pro vysokou spolehlivost při každodenní práci.

C2115 Praktický úvod do superpočítání

Extrémně rychlé řídicí systémy Beckhoff

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Inteligentní řízení strojů s portfoliem u-mation Řešení pro automatizaci a digitalizaci Let s connect. Automatizace a digitalizace

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

ČÁST 1. Základy 32bitového programování ve Windows

Témata profilové maturitní zkoušky

Řízení IO přenosů DMA řadičem

Implementace systémů HIPS: historie a současnost. Martin Dráb

Minulost, současnost a budoucnost standardu PXI

Sísyfos Systém evidence činností

Server je v informatice obecné označení pro počítač, který poskytuje nějaké služby nebo počítačový program, který tyto služby realizuje.

karet Analogové výstupy (AO) (DIO) karty Zdroje informací

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

NOVÝ DIAGNOSTICKÝ TESTER DCU 100 UPGRADE KTS 460

Architektury paralelních počítačů I.

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

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

Identifikátor materiálu: ICT-1-17

Identifikátor materiálu: ICT-1-08

Principy operačních systémů. Lekce 6: Synchronizace procesů

Práce v textovém editoru

Pokročilé architektury počítačů

Referát (pokročilé architektury počítačů)

TGZ. 2-osé digitální servozesilovače

CP1L. » Rozšíře n é f u n kce ří z e n í p o h y b u. » R y c h l é z p r a c o v á n í d a t. » S n a d n é p ři p o j e n í a ko m u n i k a c e

AUTOMATIZACE Úvod do programování PLC

Software pro návrh a konfiguraci

Vývoj OS Windows Mobile. Ing. Jiří Šilhán

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Ukázka zkouškové písemka OSY

Grafické karty s podporou DirectX 11 Quynh Trang Dao Dao007

Transkript:

Využijte plný výkon procesorů s více jádry v LabVIEW 8.5 Rychlosti procesorů narazily během posledních let na strop. Mooreův zákon, který říká, že počet tranzistorů na čipu se zdvojnásobí každých 18 až 24 měsíců, je stále platný, stejně jako v průběhu posledních 40 let, ale nadále již neznamená lineární nárůst ve výkonu. Dříve zvyšovali výrobci čipů takt procesoru kvůli zdvojnásobení výkonu čipu např. ze 100 na 200MHz a v nedávné době už v rozsahu GHz. Dnes již však zvyšování taktu kvůli zvýšení výkonu není udržitelné z důvodů omezení ve spotřebě energie a v tepelném vyzařování. Dodavatelé čipů se místo toho soustředí na zcela nové architektury s několika procesorovými jádry na jediném čipu. S vícejádrovými procesory mohou programátoři docílit zpracování většího množství instrukcí, než s jedním jádrem. Nicméně aby využili výhod procesorů s více jádry, musí se programátoři zamyslet nad způsobem, jakým vytvářejí aplikace. Slovy Herba Suttera, softwarového architekta z Microsoftu, dnes již doba nepřeje vývojářům, kteří očekávají okamžité zvýšení výkonu aplikací díky tomu, že uživatelé prostě vymění své počítače za modely s výkonnějšími procesory. Zkrátka, programátoři nyní musejí aplikaci vytvořit tak, aby i nadále docházelo ke zvýšení výkonu. U sekvenčních programů docházelo ke zvýšení výkonu díky tomu, že se zvyšoval takt procesorů. Výměna počítače za nový s rychlejším procesorem vždy znamenala, že každá instrukce v řadě proběhla rychleji. Aby docházelo ke zvyšování výkonu u procesorů s více jádry, musí vývojáři navrhovat své aplikace tak, aby svou práci rozdělovaly mezi jednotlivá jádra zjednodušeně řečeno: je potřeba vyvíjet paralelní aplikace namísto sekvenčních. Software LabVIEW od společnosti National Instruments umožňuje využití plného výkonu procesorů s více jádry, a to ze třech základních důvodů: 1 LabVIEW je grafický programovací jazyk založený na datových tocích. Vývojáři si mohou v LabVIEW snadno vytvářet paralelní úlohy, což jim umožňuje vyvíjet nové aplikace a upravovat staré aplikace tak, aby využily výhody procesorů s více jádry. LabVIEW je vícevláknové multithread již od verze 5.0, a nejnovější verze 8.5 přináší vylepšení pro využití rychlosti procesorů s více jádry. 2LabVIEW umí využít výkon procesorů s více jádry i v embedded systémech reálného času.

LabVIEW 8.5 nově umožňuje využití automatického multitaskingu, používaného v operačních systémech osobních počítačů jako Windows a Linux známou jako symetrický multiprocessing (symmetric multiprocessing - SMP) do deterministických systémů reálného času. 3LabVIEW je umístěno na vrcholu softwarového modelu připraveného na technologii více jader. Každá vrstva aplikace LabVIEW (například aplikační kód LabVIEW, nízko-úrovňové funkce, a I/O ovladače) je thread-safe (bezpečná z hlediska spolupráce více vláken) pro využití výhod procesorů s více jádry. LabVIEW je grafický programovací jazyk založený na datových tocích Hlavní výhodou při vývoji vašich aplikací v LabVIEW je intuitivní grafická podoba tohoto jazyka. V LabVIEW řešíte svůj technický problém stejným způsobem, jako když kreslíte na papír blokové schéma. Moderní vícejádrové procesory dělají z LabVIEW ještě lepší volbu při výběru programovacího nástroje, a to díky jeho schopnosti vyjadřovat a provádět úlohy paralelně. To, že je LabVIEW založeno na datových tocích, znamená, že kdykoliv kód obsahuje větvený spoj nebo paralelní sekvenci v blokovém diagramu, pokouší se kompilátor LabVIEW provádět tento kód paralelně. V termínech počítačové vědy se toto chování nazývá implicitní paralelismus, neboť nemusíte psát kód speciálním způsobem, aby byl prováděn paralelně; grafický jazyk v LabVIEW se sám postará o jistou úroveň paralelismu. Teoretická výkonnostní výhoda spojená s přechodem od jednojádorvého k dvoujádrovému počítači je dvojnásobné zlepšení. Jak moc se k tomuto limitu přiblížíte je přímo závislé na tom, jak dokážete zajistit, aby byl váš program vykonáván paralelně. Programátoři v LabVIEW své programy vytváří paralelně automaticky, protože to je přirozená vlastnost tohoto prostředí. První testy rychlosti běžných aplikací vytvořených v LabVIEW ukazují, že bez ohledu na programovací techniky pro vícejádrové systémy, vykazují tyto aplikace 15 až 20 % nárůst bez jakýchkoliv zásahů do jejich kódu. Obrázek č. 1 ukazuje příklad jednoduché aplikace, ve které jedno větvení v LabVIEW kódu usnadňuje dvě úlohy analýzy filtraci a rychlou Fourierovu transformaci (FFT) pro paralelní provádění na dvoujádrovém systému. Protože jsou obě úlohy výpočetně náročné, je rychlost zpracování na dvoujádrovém procesoru 1,8 násobkem rychlosti zpracování na jednom jádru. V tradičních textově založených prostředích musí vývojáři používat komplexní kódovací struktury, nazývané vlákna, aby v těchto sekvenčních jazycích implementovali paralelismus. Správa vícevláknových aplikací může být velmi náročná. V jazyku C musíte provádět synchronizaci

prostřednictvím zámků, mutexů, atomických instrukcí a dalších pokročilých programátorských technik. Když se stane správa více vláken příliš složitou pro sledování, mohou se objevit běžné programátorské nástrahy, jako třeba následující: Neefektivita díky příliš velkému počtu vláken Zamrznutí (deadlock) vlákna na sebe čekají navzájem a žádné nemůže pokračovat v provádění Kolize časování provádění kódu není správné a data buď nejsou k dispozici v pravou chvíli, nebo dochází k přepisování správných dat Spory o paměť více vláken se snaží přistupovat k paměti ve stejnou chvíli Mimo vytváření kódu je dalším příkladem zvýšené produktivity možnost provádět základní ladění v LabVIEW pomocí zvýraznění provádění a sond, jak je vidět na obrázku č. 2. Když hovořil Scott Sirrine (hlavní produktový vývojář v Eaton Corporation) o vývoji vícejádrových aplikací v LabVIEW, řekl, Skutečnost, že je LabVIEW jazyk založený na datových tocích s automatickým multithreadingem, představuje dvě klíčové výhody oproti jiným programovacím jazykům produktivitu při vývoji a výkon při provádění. Přestože se LabVIEW samo stará o mnoho problémových částí vývoje pro vícejádrové systémy, existují stále případy, ve kterých můžete dále zvýšit výkonnost systému používáním optimalizačních strategií při tvorbě kódu. Tři příklady takových strategií: Paralelismus úloh rozdělování vašeho programu do paralelně prováděných úloh Proudové zpracování instrukcí (pipelining) rozdělení sekvenčních algoritmů do ekvivalentních úseků, které jsou rozděleny mezi více jader Datový paralelismus rozdělování velkých datových celků do podcelků a jejich paralelní zpracovávání Příklad každé z těchto optimalizačních technik můžete nalézt na stránce ni.com/multicore. LabVIEW umí využít výkon procesorů s více jádry i v embedded systémech reálného času Technici se dříve spoléhali na nástroje, které nejsou optimalizovány pro paralelní programování, jež je nezbytné z důvodu využití výhod vícejádrových embedded systémů. LabVIEW 8.5 přináší

automatický vícevláknový plánovač úloh ze stolních počítačů známý jako SMP do deterministických systémů reálného času. Modul reálného času pro LabVIEW 8.5 přidává prvotřídní podporu pro vícejádrové systémy s následujícími možnostmi: Můžete provádět automatické rozdělování zátěže na více jader (SMP) na embedded systémech reálného času Časově kritickým sekcím kódu nyní můžete přiřadit časové smyčky na vyhrazených jádrech (procesorová afinita), aby byly izolovány klíčové sekce kódu ve strukturách časových smyček od zbytku vaší aplikace Díky doplňku Real-Time Execution Trace Toolkit 2.0 nyní můžete snadno vizualizovat vlákna a jádra procesorů, na kterých běží vaše VI. Nástroj pomáhá při naladění systémů reálného času na optimální výkon LabVIEW je umístěno na vrcholu softwarového modelu připraveného na technologii více jader Společnost Intel definovala čtyři vrstvy softwarového modelu, na základě kterých byste měli posuzovat připravenost na vývoj pro systémy s více jádry. Tyto čtyři vrstvy jsou operační systém, ovladače zařízení, aplikace/knihovny a vývojové nástroje. Paralelní programy neběží na vícejádrových procesorech rychleji, pokud nejsou knihovny a ovladače, které používáte, optimalizovány pro běh na více jádrech nebo pokud operační systém nedokáže rovnoměrně rozdělovat zátěž mezi více jader. Příkladem na vrstvě ovladačů zařízení jsou softwarové ovladače NI-DAQmx. Tradiční ovladač Traditional NI-DAQ (Legacy) je bezpečný z hlediska vláken. To znamená, že celá knihovna blokuje své volání z jiných vláken, pokud je zavolána NI-DAQ funkce. Na první pohled se toto chování může zdát logickým, neboť NI-DAQ se používá k ovládání hardwaru, který by měl být v každém okamžiku volán jen jednou. Ovladač NI-DAQmx používaný od roku 2003 je reentrantní. To znamená, že více úloh může být prováděno opravdu paralelně bez vzájemného blokování vláken. Díky tomuto přístupu podporuje ovladač paralelní provozování několika úloh jedné I/O kartě. Může jít např. o nezávislé zpracování analogových a digitálních vstupů a výstupů. LabVIEW Ideální jazyk pro paralelní programování Většina zákazníků zaznamená výhody vyplývající z vícejádrových systémů ve vylepšené schopnosti provozovat současně více aplikací (e-mail, video, zpracování textu, a další), což se označuje jako multitasking. Nicméně tato skutečnost znamená málo výhod pro vývojáře, který se snaží optimalizovat jedinou aplikaci.

Uživatelé, kteří vyžadují rychlejší měření pro testování nebo vyšší výkon ve smyčkách řídicích aplikací, musí zvážit způsob, jakým budou implementovat paralelní aplikace. S LabVIEW můžete využít výhod softwarového prostředí, které je ideální pro paralelní programování díky řízení zpracování běhu programu datovým tokem, podpoře vícejádrových systémů na embedded platformách vyvinutých pomocí LabVIEW Real-Time a softwarovým modelem připraveným na vícejádrové systémy na všech svých vrstvách. Jeff Meisel Jeff Meisel je produktový manažer pro LabVIEW Real-Time Module. Získal bakálřské vzdělání v počítačových vědách na Kansas State University. Další informace o LabVIEW 8.5 poskytne česká pobočka firmy National Instruments. National Instruments (Czech Republic), s.r.o. Dělnická 12 170 00 Praha 7 - Holešovice Česká republika Tel: +420 224 235 774 Fax: +420 224 235 749 E-mail: ni.czech@ni.com www.ni.com/czech CZ: 800 142 669 SK: 0800 182 362