Sprzedaj swój stary telefon Czy masz może w szafie tak stary telefon, że wydaje się, że musiałbyś komuś zapłacić aby go od Ciebie zabrał? Jeśli tak, to mam dla Ciebie świetne rozwiązanie, zrób z niego pożytek i sprzedaj go w Top Dollar Mobile. Jakiś czas temu natrafiłem w sieci na artykuł, który opisywał wejście TDM na rynek polski. Pomysł...

Czytaj dalej

Podsumowanie roku 2011 Czas na podsumowanie minionego roku. W ostatnich 12 miesiącach na blogu pojawiło się  tylko 18 wpisów - tragedia. W poprzednim roku (2010), niepełnym, bo blog powstał w maju, wpisów było 44.  W 2011 roku witrynę odwiedziło 3307 unikalny użytkowników (spadek prawie o 50%), którzy wygenerowali 4326 odwiedzin (6190 odsłon)....

Czytaj dalej

Prawdziwy Android Gingerbread Idą święta. Czas na pierniki - androidowe :) Składniki: 300 g mąki pszennej, 100 g mąki żytniej pełnoziarnistej, 2 duże jajka, 13 dag cukru pudru, 10 dag masła, roztopionego, 10 dag miodu, 1 łyżka przyprawy do piernika, 1 łyżka kakao, 1 łyżeczka sody oczyszczonej. Wszystkie składniki wsypać do naczynia, wymieszać...

Czytaj dalej

Do czego służy laptop? Wracając z wakacji we wrześniu, czekając na przesiadkę na lotnisku w Brukseli, zostałem uświadomiony do czego w dzisiejszych czasach służy laptop... to po prostu podstawka pod iPad'a :)

Czytaj dalej

Wideo GTalk w Warszawskim Metrze W weekend przeprowadziłem ciekawy eksperyment. Siedząc w pędzącym metrze, trzymając w ręku Galaxy Taba 10.1, łączącego się z siecią poprzez operatora Play (jedyny dostępny "pod ziemią") nawiązałem wideochat z osobą na powierzchni :) Niby nic, ale żebyście widzieli miny osób siedzących obok :) Bezcenne! Wideoczat w wersji...

Czytaj dalej

Go Parallel, Be Master

Parallel Logo

Jeśli widzieliście moją prezentację o Programowaniu Równoległym, wiecie, że nie jest mi obcy temat równoległości, wielowątkowości i wieloprocesorowości, uff…. Teraz ta znajomość wchodzi na inny poziom. Moja praca magisterska, której obrona planowana jest na luty 2011 r., będzie ściśle powiązana z tym zagadnieniem. Tematem jest paralelizm aplikacji oraz jego weryfikacja. W skrócie: mam wymyślić, jak w możliwie automatyczny sposób zrównoleglić aplikację oraz w jaki sposób zweryfikować takie zrównoleglenie.

Pierwsza część polega na zbudowaniu narzędzia (prawdopodobnie pluginu do Visual Studio), który będzie podpowiadał programiście, które elementy kodu można zrównoleglić oraz jak to zrobić, używając znanych metod i rozwiązań. Druga część, ściśle powiązana z pierwszą, ma na celu zweryfikowanie, czy podział aplikacji na niezależne, równoległe ciągi instrukcji nie zmieni jego zachowania w każdym możliwym przypadku szeregowania; ma być to dowód formalny.

Jak widać, zagadnienie nie jest trywialne, więc na początek będę musiał się troszkę podszkolić, przekopać przez tony literatury i kodu źródłowego. W cyklu notek opatrzonych tagiem „magister” będę na bieżąco raportował moje postępy. Zatem zaczynajmy…

Jeśli chodzi o programowanie równoległe (używając tej nazwy, będą odnosił się jednocześnie do programowania wielowątkowego i wieloprocesorowego), to na samym początku należy opanować podstawy. Czym jest wątek, proces, deadlock, mutex, monitor? Nie będę tego opisywał, ale proponuję samodzielnie poczytać i pomyśleć. Dodatkowo polecam serię artykułów o wielowątkowości na blogu Piotra Zielińskiego. Zostały tam opisane wspomniane elementy oraz ich zastosowanie w środowisku .NET.

Celem pierwszego etapu mojej pracy jest zapoznanie się z możliwie jak największa liczbą zaawansowanych rozwiązań do kontroli/wprowadzania równoległości. Przez zaawansowane mam na myśli wszystko poza klasycznym mutexem, semaforem czy monitorem. Oczywiście w tych rozwiązaniach takie właśnie mechanizmy zostały użyte, ale głęboko, głęboko, pod maską. Programiście zostaje za to udostępniony zupełnie inny, bardziej przyjazny interfejs. Na początek Parallel Extensions…

Nie będę się powtarzał i odsyłam zainteresowanych do mojego artykułu na CodeGuru (część 1, bo 2 nigdy nie powstała – mój błąd). Opisuję tam podstawy tego rozwiązania, wyjaśniam, jak to naprawdę działa, i kiedy należy takie mechanizmy stosować. Dodatkowo zachęcam do subskrypcji blogu zespołu rozwijającego ten produkt – PFX Team. Przynajmniej raz na tydzień pojawia się nowa notka opisująca pewną funkcjonalność produktu. Wspomnieć należy również o Parallel Computing Developer Center w strukturach portalu MSDN. Zebrano tam dziesiątki artykułów, przykładów, screencastów i wywiadów z osobami odpowiedzialnymi za projekt. Polecam!

Na koniec warto wspomnieć o konkurencyjnym rozwiązaniu dla języków C/C++  – OpenMP.

Promuj

  • Pingback: Go Parallel, Be Master - develway.pl

  • Marcin

    Nie wiem czy znasz podejście do zrównoleglania oparte o aktorów. Ten pattern zastosowany jest w języku Erlang, oraz w projekcie Akka.

  • http://blog.fones.pl fones

    Tak, będzie on omawiany wkrótce. Jego implementacja na platformie .NET nazywa się Axum i aktualnie znajduje się w DevLabsach.