{"id":717,"date":"2012-05-23T21:41:16","date_gmt":"2012-05-23T20:41:16","guid":{"rendered":"http:\/\/minibrain.wordpress.com\/?p=717"},"modified":"2012-05-23T21:41:16","modified_gmt":"2012-05-23T20:41:16","slug":"konferenz-parallel-2012","status":"publish","type":"post","link":"https:\/\/abramowitsch.de\/blog\/?p=717","title":{"rendered":"Konferenz: parallel 2012"},"content":{"rendered":"<p>In den R\u00e4umlichkeiten der IHK Karlsrunde fand heute der erste Tag der &#8222;parallel 2012&#8220; statt, einer Konferenz, die sich mit Parallel-Computing auseinander setzt.<\/p>\n<p><!--more--><\/p>\n<p>Die Keynote von <a href=\"http:\/\/www.ipd.uka.de\/~tichy\/\" target=\"_blank\">Prof. Walter F. Tichy<\/a> er\u00f6ffnete die Konferenz mit einer Keynote zum Thema, in dem die Grundlagen von Betriebssystemen und Parallelprogrammierung wiederholt wurden. Er ging dabei auch auf typische Probleme der parallelen Verarbeitung ein. Ein wirklich erfrischender Vortrag, der auch durch das konsequente Verzichten auf Anglizismen (z.B. &#8222;Faden&#8220; anstelle von &#8222;Thread&#8220;, &#8222;Halde&#8220; anstelle von &#8222;Heap&#8220;, &#8230;) auffiel \ud83d\ude42 Das Erstellen eines Indexers, der schrittweise parallelisiert wurde, zeigte einige Problem mit Sperren eindeutig. Das war mir so nicht immer bewu\u00dft.<\/p>\n<p>Nach einem \u00fcppigen Fr\u00fchst\u00fccksbuffet ging es dann weiter mit einem Vortrag von Oliver Denninger, der typische Fehler in der Parallelprogrammierung anhand popul\u00e4rer Open Source Projekte wie Mozilla Firefox, Jetty oder MySQL analysierte. Dabei wurden Eintr\u00e4ge aus den Bugzilla-Datenbanken herangezogen, das Problem am Code gezeigt und die entsprechende L\u00f6sung im Code (in Folien) erkl\u00e4rt. Aus den gemachten Fehlern kann man sehr viel lernen &#8211; zum Gl\u00fcck waren es nicht meine \ud83d\ude09<\/p>\n<p><a href=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/foto-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/foto-1.jpg?w=1014\" alt=\"Bild\" width=\"530\" height=\"399\" \/><\/a><\/p>\n<p>Nach einem kurzen Raumwechsel habe ich mir den Vortrag von Dr. Patrick Peschlow zum Thema &#8222;Multithreading in JVM&#8220; angeschaut. Als ehemaliger Java-Entwickler wollte ich mich mal \u00fcber die aktuelle Entwicklung informieren. In Java ist ja echt viel passiert! Besonders interessant war ein Tool namens &#8222;<a href=\"http:\/\/sourceforge.net\/projects\/javaconcurrenta\/\" target=\"_blank\">Java Concurrent Animated<\/a>&#8220; (<a href=\"http:\/\/sourceforge.net\/projects\/javaconcurrenta\/\" target=\"_blank\">http:\/\/sourceforge.net\/projects\/javaconcurrenta\/<\/a>), das das wirken einzelner Multithreading-Algorithmen visuell aufbereitet zeigte:<\/p>\n<p><a href=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/217571.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/217571.jpg?w=630\" alt=\"Bild\" width=\"333\" height=\"192\" \/><\/a><br \/>(Quelle: <a href=\"http:\/\/sourceforge.net\/projects\/javaconcurrenta\/screenshots\/217571\" target=\"_blank\">http:\/\/sourceforge.net\/projects\/javaconcurrenta\/screenshots\/217571<\/a>)<\/p>\n<p>Nach der Mittagspause h\u00f6rte ich den Vortrag zum Thema &#8222;<span class=\"eventlink\">Concurrency im neuen C++11-Standard<\/span>&#8220; von Detlef Vollmann. Herr Vollmann vertritt im ISO-Gremium f\u00fcr C++ die Schweiz und hat wirklich wirklich Ahnung von der Sache. Die wichtigste Erkenntnis das Tages kam gleich zu Beginn: Parallel ist nicht Multithreading!<\/p>\n<p><a href=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/foto-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/foto-2.jpg?w=1014\" alt=\"Bild\" width=\"345\" height=\"456\" \/><\/a><\/p>\n<p>Die Programmierung unterscheidet sich darin, dass Multithreading meist nur auf einer CPU mit einem dedizierten Speicher stattfindet. Parallel Programmierung findet bei mehreren CPUs mit mehreren Kernen statt, die zum einen eigenen eigenen Cache und einen gemeinsamen Speicher haben k\u00f6nnen. Dann kommen ganz andere Probleme wie Aktualisieren von Variablen im Cache mittels Sperren, volatile etc. zum Tragen. Das sind dann keine trivialen Probleme mehr wie ich selbst feststellen musste.<\/p>\n<p>C++ unterst\u00fctzt nun auch Lamda-Expressions, async-Keyword, Delegates und Futures. Teilweise sah die Verwendung schon ziemlich elegant aus. Sobald ich den Source-Code von Herrn Vollmann habe, werde ich mal mehr dazu testen.<\/p>\n<p>Der n\u00e4chste Vortrag war zum Thema &#8222;Clojure&#8220; in Java. Diese Lisp-\u00e4hnliche Sprache konnte ich zwar am Ende des Vortrags lesen aber definitiv noch nicht selbst schreiben. Clojure ist ein Thema, dem ich mich bei Gelegenheit mal widmen will &#8211; Allerdings vorerst nicht in Java, sondern in .NET. Eine entsprechende Portierung scheint es ja schon zu geben. Mich w\u00fcrde vor allem das Geschehen hinter den Kulissen interessieren und ich erhoffe mir vom Reflector dann &#8222;Aufkl\u00e4rung&#8220; \ud83d\ude42<\/p>\n<p>Der letzte Vortrag des Tages ging um &#8222;Numerobis Multicoris \u2013 Entwurfsmuster und Datenstrukturen f\u00fcr parallele Programm&#8220; von Dr. Tobias Sch\u00fcle. Das war wirklich der Vortrag, aus dem ich das meiste f\u00fcr meine t\u00e4gliche Arbeit mitnehmen kann. Urs Gleim und er haben auch ein entsprechendes Buch zum Thema &#8222;MultiCore Programmierung&#8220; geschrieben. Morgen findet eine Verlosung dazu statt. Falls ich es nicht gewinne, werde ich es mir kaufen. Es wurden anhand von Folien zuerst die Grundlagen gezeigt und dann am C++-Code mit Intel Threading Building Blocks, OpenMP usw. die Praxis gezeigt. Wirklich sehr sch\u00f6n! Der Raum war auch entsprechend voll:<\/p>\n<p><a href=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/foto-3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/foto-3.jpg?w=1014\" alt=\"Bild\" width=\"436\" height=\"329\" \/><\/a><\/p>\n<p>Den Abschluss des heutigen Abends machte eine Podiumsdiskussion mit Prof. Walter F. Tichy, V\u00e1clav Pech, Tim Mattson und Jerry Higgins:<\/p>\n<p><a href=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/foto-4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/foto-4.jpg?w=1014\" alt=\"Bild\" width=\"427\" height=\"323\" \/><\/a><\/p>\n<p>Urs Gleim leitete die Diskussionsrunde, die zwar auf englisch gehalten wurde aber viele Kontroversen diskutierte wie beispielsweise die Frage: wie wird in 10 Jahren entwickelt werden? Welche Programmiersprachen werden \u00fcberleben oder sich weiterentwickeln? Prof. Walter F. Tichy meinte, dass in 10 Jahren die gleichen Programmiersprachen existieren werden, denn Entwickler hassen nix mehr, als eine neue Sprache zu lernen. Es wird Erweiterungen und Bibliotheken geben, die die Sprachen verbessern werden. Konstruktive Kontroversen gab es immer wieder zwischen Prof. Walter F. Tichy und Tim Mattson, die sehr unterhaltsam waren.<\/p>\n<p>Mit dem Flammkuchen und ein paar Bierchen klang ein toller Konferenztag dann aus:<\/p>\n<p><a href=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/foto-5.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2012\/05\/foto-5.jpg?w=1014\" alt=\"Bild\" width=\"383\" height=\"289\" \/><\/a><\/p>\n<p>Ich freue mich schon auf weitere interessante Vortr\u00e4ge morgen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In den R\u00e4umlichkeiten der IHK Karlsrunde fand heute der erste Tag der &#8222;parallel 2012&#8220; statt, einer Konferenz, die sich mit Parallel-Computing auseinander setzt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[61,66,67,68],"class_list":["post-717","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-konferenz","tag-multithreading","tag-parallel","tag-parallel2012"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Ug90-bz","_links":{"self":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=717"}],"version-history":[{"count":0,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/717\/revisions"}],"wp:attachment":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}