Paralelno Asinhrono Programiranje

Embed Size (px)

Citation preview

  • 8/17/2019 Paralelno Asinhrono Programiranje

    1/23

  • 8/17/2019 Paralelno Asinhrono Programiranje

    2/23

    Paralelno i asinhrono

    programiranje-izazov za svakog programera

    Mr. Sc. Bahrudin Hrnjicamail:[email protected]: @bhrnjica

    blog:http:!!bhrnjica.net

    mailto:[email protected]:[email protected]

  • 8/17/2019 Paralelno Asinhrono Programiranje

    3/23

  • 8/17/2019 Paralelno Asinhrono Programiranje

    4/23

  • 8/17/2019 Paralelno Asinhrono Programiranje

    5/23

    Sadr"aj

    • #i$enitne aplikacije –  %hread sa&e' (emo

    • Parallel)*-.+et bib. za paralelno programiranje – Moorov zakon –  %ask , asinhrona operacija –

    ork Stealing/ , princip rada Parallel)* –  %P0 , osnovne operacije – P01+2 , 01+2 na steroidima – (emo: %P0 u akciji – (emo: P01+2 u akciji – (emo: (ata3ace

    as4nc 5 aait , klju6ne rije6i , as4nhrono programiranje – as4nc5aait - jedinstvenost nad svim dijelovima .+7% i in3% – (emo: as4nc programiranje na strani klijenta – (emo: as4nc programiranje na strani servera

    • 8aklju6ak

  • 8/17/2019 Paralelno Asinhrono Programiranje

    6/23

    #i$enitne aplikacije - #9

    • #i$enitne aplikacije- aplikacija manipuli$eu isto vrijeme sa vi$e od jedne niti.

    • Slo"enost implementacije.• +ona mora za debugiranje.

  • 8/17/2019 Paralelno Asinhrono Programiranje

    7/23

    (7M;

     %hread-sa&e demo.

  • 8/17/2019 Paralelno Asinhrono Programiranje

    8/23

    #i$enitne aplikacije - #9

    • >ta je %hread Sa&e?%SA

    • (a li je 6itanje %SA•

    ta je 3ace

    ondition/ ?3A

    • ;snovni pojam #+app.

    • 8avisi= •

    Samo lokalnevarijable.• +e$to $to vas

    spre6ava razvijate #9.

  • 8/17/2019 Paralelno Asinhrono Programiranje

    9/23

    397 ;+(1%1;+

    Nit 1 Nit 2 vrij

    6itanje C- Dink. proces D

    memorisanje

    -E F

    6itanje C- F

    ink. proces F

    memorisanje

    -E G

    Nit 1 Nit 2 vrij

    6itanje C-

    D

    6itanje C-

    D

    ink. proces F

    ink. proces F

    memorisanje

    -E

    F

    memorisan

     je

    -

    E

    F

    iiIFJ iiIFJ

  • 8/17/2019 Paralelno Asinhrono Programiranje

    10/23

    (7M;

    3ace ondition demo.=

  • 8/17/2019 Paralelno Asinhrono Programiranje

    11/23

    Programming Models

    #isual Studio GDFD i .+7% K.D %ools' Programming Models' 3untimes

    Parallel(ebugger

     %ool

    indo

    ParallelProLler9nal4sis

     %ools

    .+7% 3untimes  %hread Pools

    Managed 0ibrar4  %ools

    .+7% Parallel 7*tensions

     %ask Scheduler

    3esource Manager   (  a   t  a

       S   t  r  u  c

       t  u  r  e  s %P0 P01+2

  • 8/17/2019 Paralelno Asinhrono Programiranje

    12/23

     %ask Scheduler/ork Stealing u akciji

    orker %hread

    F

    orker %hread

    pProgram

     %hread %ask F

     %ask G %ask N

     %ask O %ask K

  • 8/17/2019 Paralelno Asinhrono Programiranje

    13/23

     %P0 , %ask asihrona operacija• (eLnicija objekta %ask

    • Metode klase %ask

    • Stanja objekta %ask

    Task task= new Task(()=>Compute());

    task.Start();//Pokretanje operacije Compute() asinhrono 

    task.Wait();//Zaustavjanje i!vr"avanja ko#a #ok se ne !avr"i operacija Compute()

    task.Wait$(params Task%& tasks);//Zaustavjanje i!vr"avanja ko#a #ok se ne !avr"e svi

    !a#aci prosje'eni kao arument meto#e

    task.Wait$n(params Task%& tasks);//Zaustavjanje i!vr"avanja ko#a #ok se ne !avr"i *arje#an o# !a#ataka prosje'eni kao arument meto#e

    pu*ic enum TaskStatus

      +  Create# = ,-

      Waitinor$ctivation = -

      WaitinTo0un = 1-

      0unnin = 2-

      WaitinorChi#renToCompete = 3-

      0anToCompetion = 4-

      Cancee# = 5-

      aute# = 6-

      7

  • 8/17/2019 Paralelno Asinhrono Programiranje

    14/23

     %P0 , task parallel librar4 &or petlja

    • zmimo klasi6nu &or petlju u Q

    • Petlja u paralelnoj verziji

    • 1teracija petlje izvr$ava se paralelno ipodjednako optereava sve jezgre

    vi$ejezgrenog procesora

    8or(int i=,;i9count; i::)

    +

      resut%i&=Compute(c);

    7

    Parae.or(,-count-(i)=>

    +

      resut%i&= Compute(c);7);

  • 8/17/2019 Paralelno Asinhrono Programiranje

    15/23

     %P0 , Parallel0oopState•

  • 8/17/2019 Paralelno Asinhrono Programiranje

    16/23

    P01+2- Paralelizirani 01+2

    • P01+2 , obezbjeRuje da se klasi6ni 01+2

    upiti izvr$avanju paralelno na svim jezgrama procesora podjednako.

    var = 8rom p in peope

      where p.

  • 8/17/2019 Paralelno Asinhrono Programiranje

    17/23

    (7M;

    Parallel)* u akciji.=

  • 8/17/2019 Paralelno Asinhrono Programiranje

    18/23

    9sinhrono programirnaje

    • as4nc' aait , klju6ne rije6i• nivo programskog jezika ?cQ' vb.•  %o je vrsta procesuiranja koja izbjegava

    blokiranje 1.• #rste procesuiranja

     – +etork 1!; – )ile 1!; – isto Procesuiranje

  • 8/17/2019 Paralelno Asinhrono Programiranje

    19/23

    (7M;

    as4nc , programirnaje nastrani klijenta=

  • 8/17/2019 Paralelno Asinhrono Programiranje

    20/23

    (7M;

    as4nc - programiranje nastrani servera

  • 8/17/2019 Paralelno Asinhrono Programiranje

    21/23

    8aklju6ak

    • Paralel)T , iskoristiti optimalno resurse kojeimamo.

    •  %ask , osnovni pojam paralelnog i as4nc

    programirnaja.• as4nc5aait , prestavlja sekvencijalni kod

    koji ne blokira 1.• as4nc5aait , uniLkacija nad 6itavim .+7% i

    in3%.•

  • 8/17/2019 Paralelno Asinhrono Programiranje

    22/23

    mail:[email protected]: @bhrnjicablog: http:!!bhrnjica.net

    mailto:[email protected]://bhrnjica.net/http://bhrnjica.net/http://bhrnjica.net/http://bhrnjica.net/mailto:[email protected]

  • 8/17/2019 Paralelno Asinhrono Programiranje

    23/23