Jakub Čermák jakub@jcermak.cz, http://www.jcermak.cz Microsoft Student Partner



Podobné dokumenty
Windows - bezplatné služby pro školy. Jakub Vlček Specialist Microsoft Corporation

Efektivní provoz koncových stanic

Lukáš Kubis. MSP pro VŠB-TU Ostrava

Jak Vám partnerské programy pomohou v rozvoji podnikání. Víte, že můžete získat software v hodnotě tisíců USD za zlomek ceny?

Windows na co se soustředit

Dnešní program. Jak síť využít. Přínosy sítě. Nasazení sítě. Proč síť

Sdílíme, a co vy? Ing. Eliška Pečenková Plzeňský kraj. Ing. Václav Koudele Microsoft

Jakub Čermák Microsoft Student Partner

Jakub Čermák Microsoft Student Partner

Zabezpečení infrastruktury

System Center Operations Manager

XNA Game Studio 3.1. Tomáš Herceg Microsoft Most Valuable Professional Microsoft Student Partner

Vývojář vs. správce IT

Jakub Čermák Microsoft Student Partner

GDPR compliance v Cloudu. Jiří Černý CELA

Skype for Business 2015

Komentáře CISO týkající se ochrany dat

Marketingová podpora pro partnery Microsoft

Vzorové analýzy rizik zpracování v cloudu. Zdeněk Jiříček National Technology Officer Microsoft ČR

Rizika výběru cloudového poskytovatele, využití Cloud Control Matrix

Paralelní programování

Novinky v licencovaní a edíciách a ako to súvisí s System Center 2012

Microsoft a nařízení GDPR. Ladka Poláková Partner Sales Executive Cloud

Optimalizace infrastruktury cesta ke kontrole IT. Pavel Salava Specialist Team Unit Lead Microsoft, s.r.o

Veritas Information Governance získejte zpět kontrolu nad vašimi daty

Paralelní a asynchronní programování. Zdeněk Jurka

a konverze na úřadech Martin Řehořek

aktuality, novinky Ing. Martin Řehořek

Jak řešit zpracování osobních údajů v cloudu dle GDPR a nešlápnout vedle. Zdeněk Jiříček National Technology Officer Microsoft ČR

Reaktivní programování v.net

Od Czech POINTu k vnitřní integraci

Cloud nový směr v poskytování IT služeb

Jak na Cloud. Roman Šuk, Microsoft Monika Kavanová, Sales2Win


Cloud a povinné osoby ze ZKB. Zdeněk Jiříček, Microsoft s.r.o. Aleš Špidla, PwC Czech s.r.o.

Aleš Keprt Univerzita Palackého v Olomouci listopad 2008, listopad 2009 PARALLEL FX A PARALELNÍ PROGRAMOVÁNÍ NA PLATFORMĚ.NET 4.0

Stav podnikové bezpečnosti, Globální zpráva Jakub Jiříček, Symantec ČR a SR

SZIF - Evropské dotace s plnou elektronickou podporou a kontrolou

Potřebujete mít vaše IS ve shodě s legislativou? Bc. Stanislava Birnerová

Mobilní počítač Dolphin TM Stručný návod k použití

Tomáš. Kutěj. Technical Solution Specialist Office platform

produktů. produkty: AutoCAD Mechanical Showcase Autodesk Autodesk Designer SketchBook Autodesk Mudbox Vault Autodesk Ultimate Intel Xeon Intel Core

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

Programování bez vláken. OpenMP

Jak udržet citlivé informace v bezpečí i v době cloudu a mobility. Jakub Jiříček, CISSP Praha, 27. listopadu 2012

Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Správa identit a bezpečnosti - cesta k bezpečnému IS. Stanislava Birnerová Direct Account Manager Novell-Praha, s.r.o.

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

Víte, kdo pracuje s vašimi dokumenty? Stanislava Birnerová

Novinky ve Visual Studio Tomáš Kroupa

Microsoft Visual C# 2010

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

IBM Security. Trusteer Apex. Michal Martínek IBM Corporation IBM Corporation

Granit 1981i. Stručný návod k použití. Průmyslový bezdrátový skener. Crdlss-GRNT1981-CZ-QS Rev A 1/15

300B user authentications each month 1B Windows devices updated. 200B s analyzed for spam and malware. 18B web pages scanned by Bing each month

Série Voyager 1400g. Stručný návod k použití. Kabelový skener. VG1400-CZ-QS Rev A 10/12

Využití identity managementu v prostředí veřejné správy

Jak importovat profily do Cura (Windows a

Supplier Web Uživatelská příručka. Supplier Web. Copyright Telefónica O2 Czech Republic, a.s. All rights reserved. 1/10

Oddělení interního auditu směřují k vyšší produktivitě pomocí moderních technologií

Řešení Technologických center

Novinky v oblasti ochrany aktiv Zdeněk Jiříček National Technology Officer Microsoft Česká republika

Preliminary Draft. Stručný návod k použití. Mobilní počítač Dolphin se systémem Windows CE 5.0

Virtualizace pomocí Novell Open Enterprise Server 2

Chytré město jak začít?

Copyright by Silca S.p.A All Rights Reserved. products quality.

1. Mohu nainstalovat aplikaci Autodesk Revit, Autodesk Revit Architecture, Autodesk Revit MEP, Autodesk Revit Structure nebo Autodesk Revit LT

Paralelní programování

Asynchronní programování v.net

Xenon 1900/1910. Stručný návod k použití. Kabelový skener. NG2D-CZ-QS Rev C 10/12

Vuquest 3310g. Stručný návod k použití. Kabelový skener CZ-QS Rev C 1/13

REGULÁTORY PRO DOMÁCTNOSTI TYP B NG

Xenon XP 1950g. Stručný návod k použití. Kabelový plošný skener CZ-QS-01 Rev A 07/19

1-AYKY. Instalační kabely s Al jádrem. Standard TP-KK-133/01, PNE Konstrukce. Použití. Vlastnosti. Installation cables with Al conductor

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Jak na podporu koncových uživatelů SAP Workforce Performance Builder. Roman Bláha Head of Education (Czech Republic) Customer

Granit 1280i. Stručný návod k použití. Industrial Full Range Laser Scanner CZ-QS Rev A 1/14

Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček

Data v NetBezpečí Symantec NetBackup Appliance

SAP Cash Management powered by SAP HANA. Jiří Janák, SAP Solution Architect, SAP ČR September, 2015

nkt instal CYKY 450/750 V Instalační kabely Konstrukce Použití Vlastnosti Installation cables Construction 2 Izolace PVC Měděná plná holá jádra

6 LINQ Strana LINQ Václav Pachta

Tutorial Pohyblivá zatížení

Tomáš Kutěj System Engineer Microsoft

1 st International School Ostrava-mezinárodní gymnázium, s.r.o. Gregorova 2582/3, Ostrava. IZO: Forma vzdělávání: denní

Parallel FX a paralelní programování na platformě. ET

3 Výplňový obal. 4 Plášť PE. Bedding

Dolphin 60s Stručný návod k použití

3 Výplňový obal. 4 Plášť PE. Bedding

Ing. Tomáš Řemelka. KAAS/JIP. Informace pro vývojáře agendových informačních systémů

3 Výplňový obal. 4 Plášť PE. Bedding

Nové funkce a jejich nastavení pro ventilátory FRESH INTELLIVENT verze 2011

Microsoft Dynamics CRM Online. Martin Čejka Solution Sales Professional Business Solution

nkt instal CYKY 450/750 V Instalační kabely Standard PN-KV Konstrukce Použití Vlastnosti Installation cables Construction

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Granit 1910i. Stručný návod k použití. Průmyslový area imaging snímač. GRNT-CZ-QS Rev A 10/12

Analýza nestrukturovaných dat pomocí Oracle Endeca Information Discovery

Microsoft Lync WEB meeting

8018/8020 Mini rýpadlo s konvenční zádí nástavby

Transkript:

Jakub Čermák jakub@jcermak.cz, http://www.jcermak.cz Microsoft Student Partner

Co paralelizace přinese? Jak paralelizovat? Jak si ušetřit práci? Jak nedělat běžné paralelizační chyby? Race condition, deadlocky Jak efektivně debugovat paralelní aplikace?

Task Parallel Library a Parallel LINQ novinky v.netu 4.0 Doplňuje stávající podporu vláken v.netu, nenahrazuje ji (!) Neřeší synchronizaci vláken, race-condition, locky, Pouze zjednodušuje některé případy paralelizace, kdy klasický (třída Thread) přístup není názorný Neřeší clusterování (MPI, DRYAD)

Task Parallel Library (TPL) Imperativní paralelismus Základní primitiva Task vyšší funkcionalita Parallel. Thread-safe kontejnery v Systém.Threading.Collections Parallel LINQ (PLINQ) Rozšíření klasického LINQu o práci s více vlákny Což díky jeho funkcionálním rysům jde pěkně Deklarativní paralelismus 5

Vyšší úroveň abstrakce 3 statické (přetížené funkce) For paralelní varianta For cyklu ForEach paralelní varianta foreach Invoke spuštění několika nezávislých fcí najednou Čeká na ukončení všech iterací Díky λ-výrazům vizuální podobnost k klasickými for/foreach cykly Thread-local úložiště

Nižší úroveň abstrakce Reprezentuje asynchronně vykonávaný úkol Základ pro vyšší třídy (Parallel, ) Agregace výjimek Přerušení výpočtu a čekání na něj Cancellation Stromové uspořádání (rodič-potomek)) Může vracet výsledek výpočty na pozadí

měkké ukončení tasku (X Abort u vláken) Změněno v β2 Původně Task.Current.IsCancellationRequested, Task.Current.AcknowledgeCancellation() a Task::Cancel() Vytvoření CancellationTokenSource cts Předání cts.token do konstruktoru Tasku Kontrola: if (token.iscancellationrequested) throw new OperationCanceledException(token) Nebo token.throwifcancellationrequested

LINQ Language Integrated Query Přidává do.netu způsob pro dotazování nad daty (IEnumerable, SQL2LINQ, XML, ) PLINQ rozšíření původních LINQovských rozhraní o paralelní přístup k datům Hodně LINQ metod jde jednoduše paralelizovat Sum, Min, Select a Where (většinou) Některé špatně (např. závislost na minulé iteraci) First, Last, Take, Skip, TakeWhile, SkipWhile, Concat, ElementAt, Zip

AsParallel() extension metoda pro IEnumerable<>, vrací ParallelQuery, což je paralelní IenumerableAsOrdered zachování pořadí AsOrdered zachování pořadí AsSequential z paralelní do sekvenční

Vynucení paralelizace Závislosti mezi iteracema -> horší možnost paralelizace, např TakeWhile WithExecutionMode(ParallelExecutionMode.Force Parallelism) Max počet vláken MaxDegreeOfParalelism Bufferování - WithMergeOptions

var r = from i in Enumerable.Range(0, 12345) where IndecisiveMethod(i) select i; var r = from i in Enumerable.Range(0, 12345).AsParallel() where IndecisiveMethod(i) select i;

Thread-safe kontejnery ConcurrentBag (neuspořádaná kolekce) ConcurrentDictonary ConcurrentQueue ConcurrentStack ThreadLocal<T> - thread local storage

VS 2010, C++0x Podobné TPL, využití λ Parallel_for, parallel_for_each, parallel_invoke Task_group, structured_task_group Timery, locky, kritické sekce Thread-safe containers Podpora pro zprávy (C++ zprávy, ne Win32)

Cross-platform rozšíření kompilátoru C/C++ Podpora ve Visual Studiu, gcc, Intel C Compiler, Ovládaná pomocí #pragma direktiv + API funkce pro nastavování, lockování, Obsahuje funkcionalitu ekviv. Parallel.For, Task + synchronizační primitiva a pomocné fce Lepší podpora sdílení proměnných Vyžaduje podporu v kompilátoru #pragma omp parallel for schedule(static) reduction(+:montecarlopoints) shared(pvalues) for(int DetRotAngleId=0; DetRotAngleId<DetRot_StepsCnt; ++DetRotAngleId) { //nějaký výpočet } 18

Parallel Stacks Graf stack traců pro všechny vlákna Zobrazování Parallel Tasks Concurrency visualizer (screenshoty) Sledování aktivit vláken, čekání apod. Common Patterns for Poorly-Behaved Multithreaded Applications http://msdn.microsoft.com/enus/library/ee329530%28vs.100%29.aspx

Prezentace a dema na stažení na http://www.jcermak.cz/prednasky.aspx Článek o TPL a PLINQ: http://vbnet.cz/clanek--130- parallel_extensions_for_net.aspx http://blogs.msdn.com/pfxteam/ http://blogs.msdn.com/nativeconcurrency/ - PPL www.msdn.com

2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.