{"id":12686,"date":"2022-09-05T12:00:32","date_gmt":"2022-09-05T10:00:32","guid":{"rendered":"https:\/\/blog.rwth-aachen.de\/itc\/?p=12686"},"modified":"2023-06-09T08:50:30","modified_gmt":"2023-06-09T06:50:30","slug":"must","status":"publish","type":"post","link":"https:\/\/blog.rwth-aachen.de\/itc\/2022\/09\/05\/must\/","title":{"rendered":"MUST <br \/> Laufzeit-Fehlererkennung f\u00fcr MPI-Anwendungen"},"content":{"rendered":"<div class=\"twoclick_social_bookmarks_post_12686 social_share_privacy clearfix 1.6.4 locale-de_DE sprite-de_DE\"><\/div><div class=\"twoclick-js\"><script type=\"text\/javascript\">\/* <![CDATA[ *\/\njQuery(document).ready(function($){if($('.twoclick_social_bookmarks_post_12686')){$('.twoclick_social_bookmarks_post_12686').socialSharePrivacy({\"txt_help\":\"Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland \\u00fcbertragen und unter Umst\\u00e4nden auch dort gespeichert. N\\u00e4heres erfahren Sie durch einen Klick auf das <em>i<\\\/em>.\",\"settings_perma\":\"Dauerhaft aktivieren und Daten\\u00fcber-tragung zustimmen:\",\"info_link\":\"http:\\\/\\\/www.heise.de\\\/ct\\\/artikel\\\/2-Klicks-fuer-mehr-Datenschutz-1333879.html\",\"uri\":\"https:\\\/\\\/blog.rwth-aachen.de\\\/itc\\\/2022\\\/09\\\/05\\\/must\\\/\",\"post_id\":12686,\"post_title_referrer_track\":\"MUST++Laufzeit-Fehlererkennung+f%C3%BCr+MPI-Anwendungen\",\"display_infobox\":\"on\"});}});\n\/* ]]> *\/<\/script><\/div><p><div id=\"attachment_12688\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/09\/must.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-12688\" class=\"wp-image-12688 size-medium\" src=\"https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/09\/must-300x124.png\" alt=\"Logo MUST\" width=\"300\" height=\"124\" srcset=\"https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/09\/must-300x124.png 300w, https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/09\/must.png 631w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-12688\" class=\"wp-caption-text\">Quelle: Eigene Darstellung<\/p><\/div><\/p>\n<p>Das Hochleistungsrechnen (HPC) besch\u00e4ftigt sich in gro\u00dfen Teilen mit der Parallelisierung von Programmen, insbesondere komplexen Simulationen wie Modellen f\u00fcr die Wettervorhersage oder das Klima. Damit Berechnungen schnell ausgef\u00fchrt werden, wird die zu erledigende Arbeit parallel auf verschiedene Prozessen aufgeteilt. Je nach Anwendungsfall m\u00fcssen die Prozesse ihre Zwischenergebnisse zur Laufzeit des Programms mit anderen Prozessen austauschen.<\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<p>Das <a href=\"https:\/\/hpc-wiki.info\/hpc\/MPI\">Message Passing Interface<\/a> (MPI) ist eine Standardmethode zum Austausch von Nachrichten zwischen mehreren Prozessen oder Computern, auf denen ein Programm verteilten Speicher nutzt. Bei falscher Nutzung von MPI k\u00f6nnen Fehler auftreten, die teilweise sehr schwierig zu erkennen sind. Das <a href=\"https:\/\/itc.rwth-aachen.de\/MUST\">Marmot Umpire Scalable<\/a> Tool (MUST) ist ein Laufzeit-Korrektheitsanalysewerkzeug, das automatisch eine nicht standardkonforme Nutzung von MPI erfasst. MUST wird von der HPC-Gruppe am IT Center in Kooperation mit dem Lawrence Livermore National Laboratory und der TU Darmstadt entwickelt. MUST ist als Open-Source-Software verf\u00fcgbar.<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #00549f;\"><strong>Anwendung von MUST <\/strong><\/span><\/h3>\n<p>MUST wird der Zielapplikation vorgeschaltet, f\u00e4ngt deren MPI-Aufrufe ab und f\u00fchrt dabei zur Laufzeit des Programms die Korrektheitsanalyse aus.<br \/>\nEin typischer Fehler bei der Nutzung von MPI ist die Verklemmung (Deadlock). Ein Deadlock ist in der Informatik ein Zustand von Prozessen, bei dem mindestens zwei Prozesse untereinander auf Ressourcen warten, die dem jeweils anderen Prozess zugeteilt sind.<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #00549f;\"><strong>Beispiel: Deadlock<\/strong><\/span><\/h3>\n<p>Vier Autos fahren auf eine Kreuzung zu und konkurrieren darum als erstes weiter zu fahren. Es gilt die Rechts-vor-Links-Regel.<br \/>\nEin Deadlock ist entstanden, da ohne weitere Verst\u00e4ndigung kein Auto weiterfahren kann. Aufgel\u00f6st werden kann diese Verklemmung also erst, wenn eine Person entscheidet, welches Auto als erstes weiterfahren darf.<\/p>\n<div id=\"attachment_12687\" style=\"width: 310px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-12687\" class=\"wp-image-12687 size-medium\" src=\"https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/09\/DeadlockAutos-300x178.jpg\" alt=\"Vier bunte Fahrzeuge fahren gleichzeitig auf eine Kreuzung zu\" width=\"300\" height=\"178\" srcset=\"https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/09\/DeadlockAutos-300x178.jpg 300w, https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/09\/DeadlockAutos.jpg 711w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><p id=\"caption-attachment-12687\" class=\"wp-caption-text\">Deadlock <br \/>Quelle: Eigene Darstellung<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>In MPI w\u00fcrde das bedeuten, dass unendlich lange auf eine Nachricht zum Aufl\u00f6sen der Situation gewartet werden w\u00fcrde, wenn eine solche Verklemmung entsteht.<br \/>\nMUST erkennt durch die Vorschaltung den Deadlock und meldet ihn an den Entwickler. Dieser kann anschlie\u00dfend den Fehler im Programm beheben, damit es nicht erneut zu dieser Verklemmung kommt. MUST erkennt solche Fehler direkt w\u00e4hrend der Ausf\u00fchrung, sodass bei Berechnungen, die \u00fcber mehrere Tage laufen, der Fehler zeitnah durch den Entwickler erkannt wird.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong><span style=\"color: #00549f;\">Weitere Anwendungsf\u00e4lle von MUST<\/span><br \/>\n<\/strong><\/h3>\n<p>Ein Deadlock ist nur einer von zahlreichen potentiellen Fehlern in der MPI-Programmierung. MUST erkennt dar\u00fcber hinaus:<\/p>\n<p>&#8211; Unzul\u00e4ssige oder falsche Argumente<br \/>\n&#8211; Ressourcenverwendungsfehler und \u2013lecks<br \/>\n&#8211; Datentyp-Abgleichungsfehler<br \/>\n&#8211; \u00dcberlappungen in Kommunikationspuffern<br \/>\n&#8211; Data Races im Zusammenhang mit MPI-Funktionsaufrufen<\/p>\n<p>Zurzeit bietet MUST ein umfangreiches Angebot an Korrektheitspr\u00fcfungen, da wo \u00dcberpr\u00fcfungen f\u00fcr MPI-Programme mit vielen parallelen Prozesse notwendig sind.<br \/>\nQuelltexte und Dokumentation zu MUST sind auf unserer <a href=\"https:\/\/itc.rwth-aachen.de\/MUST\">Webseite<\/a> verf\u00fcgbar und weitere Informationen zu MUST findet ihr im <a href=\"https:\/\/hpc-wiki.info\/hpc\/MUST\">HPC-Wiki<\/a>.<\/p>\n<p>Verantwortlich f\u00fcr die Inhalte dieses Beitrags sind <a href=\"https:\/\/www.itc.rwth-aachen.de\/cms\/IT-Center\/IT-Center\/Team\/~epvp\/Mitarbeiter-CAMPUS-\/?allou=1&amp;gguid=0x9774D4BC6CF14142A640B59EFAFA510D&amp;lidx=1\">Simon Schwitanski<\/a> und <a href=\"https:\/\/www.itc.rwth-aachen.de\/cms\/IT-Center\/IT-Center\/Team\/~epvp\/Mitarbeiter-CAMPUS-\/?gguid=0x592B0D17C73A1249AC2C233FADF6EE96&amp;allou=1\">Janin Vreydal<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Das Hochleistungsrechnen (HPC) besch\u00e4ftigt sich in gro\u00dfen Teilen mit der Parallelisierung von Programmen, insbesondere komplexen Simulationen wie Modellen f\u00fcr die Wettervorhersage oder das Klima. Damit Berechnungen schnell ausgef\u00fchrt werden, wird [&hellip;]<\/p>\n","protected":false},"author":3351,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"c2c_always_allow_admin_comments":false,"footnotes":""},"categories":[924,316,315],"tags":[23,629,628],"class_list":["post-12686","post","type-post","status-publish","format-standard","hentry","category-hpcnews","category-projekte-kooperationen","category-services-support","tag-hpc","tag-mpi","tag-must"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts\/12686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/users\/3351"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/comments?post=12686"}],"version-history":[{"count":12,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts\/12686\/revisions"}],"predecessor-version":[{"id":15465,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts\/12686\/revisions\/15465"}],"wp:attachment":[{"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/media?parent=12686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/categories?post=12686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/tags?post=12686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}