trešdiena, 2008. gada 29. oktobris

Parallelism is about performance

Vienā no semināriem tika apskatīti paralēlisms un multicores aplikācijas. Mēģināšu reproducē dažas pamatidejas, par kurām pasākumā runāja.

Pamatideja: paralēlismu kodā vajadzētu ieviest tikai, kad tas ir nepieciešams, jo paralēlisms: (1) palielina kļūdu skaitu, (2) palielina sarežģītību. Tomēr rakstot kodu, vajadzētu analizēt un plānot, kurās vietās nākotnē, ja rodas kādas ātrdarbības problēmas, var ieviest paralēlismu.

Optimizējot esošu kodu, vajadzētu sekot šādos soļos:
  • jāsaprot, kas tad ir lēns;
  • pēc iespējas mēģināt optimizēt lēno kodu, neieviešot paralēlismu (visbiežāk ar algoritmu, atmiņas izmantošanas un IO operāciju optimizēšanu);
  • identificēt vietas, kurās paralēla apstrāde ir iespējama;
  • realizēt paralēlismu.
VS2010 un .Net 4.0 ir vairākas lietas, kuras palīdzēs veidot multicores aware programmas:
  • Programmēšanas valodās ir iestrādātas dažādas jaunas lietas:
    • pLINQ: parallel language integrated query;
    • komandas: parallel.for un parallel.foreach;
    • komanda: parallel.invoke {stmt1, stmt2, ....};
    • task_group, kas ļaus atzīmēt komandas, kuras drīkst izpildīties paralēli, piemēram, divu atšķirīgu sarakstu sortēšana.
  • VS2010 būs vairāki rīki, kuri palīdzēs analizēt sistēmas darbību, analizēt paralēlismus, identificēt savstarpējas bloķēšanās utt.

Nav komentāru:

Ierakstīt komentāru