{"id":19785,"date":"2024-07-12T11:30:03","date_gmt":"2024-07-12T09:30:03","guid":{"rendered":"https:\/\/blog.rwth-aachen.de\/itc\/?p=19785"},"modified":"2025-03-31T07:57:59","modified_gmt":"2025-03-31T05:57:59","slug":"archer","status":"publish","type":"post","link":"https:\/\/blog.rwth-aachen.de\/itc\/2024\/07\/12\/archer\/","title":{"rendered":"Archer: Fehlererkennung f\u00fcr HPC"},"content":{"rendered":"<div class=\"twoclick_social_bookmarks_post_19785 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_19785')){$('.twoclick_social_bookmarks_post_19785').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\\\/2024\\\/07\\\/12\\\/archer\\\/\",\"post_id\":19785,\"post_title_referrer_track\":\"Archer%3A+Fehlererkennung+f%C3%BCr+HPC\",\"display_infobox\":\"on\"});}});\n\/* ]]> *\/<\/script><\/div><p><div id=\"attachment_19788\" style=\"width: 310px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-19788\" class=\"size-medium wp-image-19788\" src=\"https:\/\/blog.rwth-aachen.de\/itc\/files\/2024\/07\/Blog-Layout-1-300x200.png\" alt=\"Archer Logo\" width=\"300\" height=\"200\" srcset=\"https:\/\/blog.rwth-aachen.de\/itc\/files\/2024\/07\/Blog-Layout-1-300x200.png 300w, https:\/\/blog.rwth-aachen.de\/itc\/files\/2024\/07\/Blog-Layout-1-1024x683.png 1024w, https:\/\/blog.rwth-aachen.de\/itc\/files\/2024\/07\/Blog-Layout-1-768x512.png 768w, https:\/\/blog.rwth-aachen.de\/itc\/files\/2024\/07\/Blog-Layout-1-1536x1024.png 1536w, https:\/\/blog.rwth-aachen.de\/itc\/files\/2024\/07\/Blog-Layout-1-2048x1365.png 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><p id=\"caption-attachment-19788\" class=\"wp-caption-text\">Quelle: <a href=\"https:\/\/pruners.github.io\/archer\/\">Pruners Github<\/a><\/p><\/div><\/p>\n<p>Die Welt des High Performance Computing entwickelt sich rasant weiter und die Rechenkapazit\u00e4ten erreichen neue H\u00f6hen. In diesem Kontext sind Werkzeuge zur Fehlererkennung und -behebung unerl\u00e4sslich, um die Zuverl\u00e4ssigkeit der Anwendungen zu gew\u00e4hrleisten. Ein solches Werkzeug ist Archer, das speziell zur Erkennung von Data Races\u00a0 in OpenMP-Programmen entwickelt wurde.<\/p>\n<p>&nbsp;<\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #00549f;\">Hintergrund und Notwendigkeit<\/span><\/h3>\n<p>Mit der Zunahme der Rechenleistung m\u00fcssen viele Softwarekomponenten parallelisiert werden, um die maximale Effizienz zu erreichen. OpenMP hat sich als bevorzugtes Modell zur Umsetzung dieser Parallelisierung innerhalb eines Rechenknotens etabliert, da es sowohl portabel als auch benutzerfreundlich ist. Eine neue Fehlerquelle beim Parallelisieren mit OpenMP ist der kritische Wettlauf, was die Entwicklung und Wartung solcher Programme erschwert. In diesem Kontext bezieht sich ein kritischer Wettlauf (oder Data Race) auf ein Problem, das auftreten kann, wenn mehrere Computerprozesse oder Threads unsynchonisiert auf dieselben Daten zugreifen und diese ver\u00e4ndern wollen. In diesem Fall ist das Verhalten des Programms nicht definiert, was zu unerwarteten und oft fehlerhaften Ergebnissen f\u00fchren kann.<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #00549f;\">Die Herausforderung<\/span><\/h3>\n<p>Traditionelle OpenMP-Werkzeuge, die nach Data Races suchen, konnten mit den modernen, gro\u00dfen und komplexen HPC-Anwendungen nicht Schritt halten. Das f\u00fchrte dazu, dass die Entwicklung ineffizient war und Entwickler*innen manchmal dazu gezwungen wurden, den einfacheren sequenziellen Code zu verwenden, um schwer auffindbare Fehler zu vermeiden. Ein Beispiel daf\u00fcr ist die Parallelisierung der Anwendung HYDRA. Ein Data Race in der Anwendung f\u00fchrte erst bei der Skalierung zur vollen HPC Maschine zu spontanen Abst\u00fcrzen. Der unerkannte Fehler hat die erfolgreiche Parallelisierung mit OpenMP um ein halbes Jahr verz\u00f6gert.<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #00549f;\">Archer: Eine L\u00f6sung<\/span><\/h3>\n<p>Archer wird seit 2014 entwickelt, um diese Probleme zu erkennen. Es handelt sich um ein hochskalierbares und pr\u00e4zises Werkzeug zur Erkennung von Data Races in OpenMP-Programmen. Archer baut auf dem bestehenden Open-Source-Tool ThreadSanitizer (TSan) auf und erweitert dessen F\u00e4higkeiten, um speziell auf die Anforderungen von OpenMP-Programmen einzugehen. Die vektorisierte Race-Checking Analyse bietet hohe Skalierbarkeit. Die dynamische Analyse f\u00fchrt zu einer hohen Genauigkeit und einer sehr niedrigen Falscherkennungsrate. Informationen zur Benutzung von Archer finden sich im.<\/p>\n<p><strong>Skalierbare Methoden zur Verfolgung von Happens-Before<\/strong>:<br \/>\nDas zentrale Kriterium f\u00fcr einen Data Race ist die fehlende Synchronisierung zwischen konkurrierenden Speicherzugriffen. Archer nutzt die Architektur von TSan, um eine effiziente \u00dcberpr\u00fcfung von Data Races durchzuf\u00fchren. Dies erm\u00f6glicht die Handhabung gro\u00dfer Produktionsprogramme in OpenMP.<\/p>\n<p><strong>Modulare Schnittstellen zu OpenMP-Runtimes:<br \/>\n<\/strong>Archer wurde so entwickelt, dass es modular in verschiedene OpenMP-Runtimes integriert werden kann. Dies wird durch die Einhaltung des \u201eOpenMP Tools Interface\u201c Standards (OMPT) erm\u00f6glicht.<\/p>\n<p><strong>Zusammenarbeit mit aktiven Projekten:<br \/>\n<\/strong>Archer hat sich bereits in realen Anwendungen bew\u00e4hrt. Neben dem bereits erw\u00e4hnten Problem in HYDRA, wurden Fehler in verschiedenen parallelen Anwendungen, w\u00e4hrend einer routinem\u00e4\u00dfigen \u00dcberpr\u00fcfung im Rahmen eines <a href=\"https:\/\/blog.rwth-aachen.de\/itc\/2021\/11\/19\/pop\/\">POP Performance Audits<\/a>, identifiziert und beseitigt.<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #00549f;\">Intel und die Entwicklung von Archer<\/span><\/h3>\n<p>Intel hat vor einigen Jahren begonnen, die eigene Compiler Architecture (Rechnerarchitektur) auf LLVM (Low-Level Virtual Machine) umzustellen. <span class=\"TextRun SCXW63792528\" lang=\"DE-DE\" xml:lang=\"DE-DE\"><span class=\"NormalTextRun SCXW63792528\">Als Ergebnis unterst\u00fctzt\u00a0<\/span><\/span><a class=\"Hyperlink SCXW63792528\" href=\"https:\/\/www.intel.com\/content\/www\/us\/en\/developer\/articles\/technical\/inspector-deprecation.html\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCXW63792528\" lang=\"DE-DE\" xml:lang=\"DE-DE\"><span class=\"NormalTextRun SCXW63792528\">Intel<\/span><\/span><\/a><span class=\"TextRun SCXW63792528\" lang=\"DE-DE\" xml:lang=\"DE-DE\"><span class=\"NormalTextRun SCXW63792528\">\u00a0seit Anfang des Jahres das eigene Werkzeug zur Erkennung von Programmierfehlern, Intel Inspector, nicht mehr.<\/span><\/span><\/p>\n<p>Um die Robustheit und Sicherheit der Anwendungen weiter zu erh\u00f6hen, sollen ab sofort die Sanitizer aus dem \u00a0. Diese Tools helfen dabei, Speicherfehler, Data Races und andere Probleme in der Softwareentwicklung fr\u00fchzeitig zu erkennen und zu beheben. Durch die Umstellung der Compiler Architecture sind diese Tools jetzt auch in den Intel Compilern der neuen Generation (z.B. icx) verf\u00fcgbar.<\/p>\n<p>Das IT Center ist seit Beginn f\u00fchrend an der Entwicklung von Archer beteiligt und arbeitet seit Jahren an der Integration und Verbesserung von TSan, um es den Anforderungen der modernen HPC-Umgebung anzupassen. Seit 2018 ist das Werkzeug fester Bestandteil des LLVM-Projekts und wird dort weiterentwickelt. Wir freuen uns, dass es durch die Integration in die Intel Compiler jetzt eine noch weitere Verbreitung findet.<\/p>\n<p>Details zur Nutzung von Archer finden sich im <a href=\"https:\/\/hpc-wiki.info\/hpc\/index.php?title=Archer\">HPC-Wiki<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>Verantwortlich f\u00fcr die Inhalte dieses Beitrags sind <a href=\"https:\/\/www.itc.rwth-aachen.de\/cms\/it-center\/it-center\/profil\/team\/~oobd\/joachim-jenke\/?lidx=1&amp;allou=1\">Joachim Jenke<\/a>, <a href=\"https:\/\/www.i12.rwth-aachen.de\/cms\/lehrstuhl-fuer-hochleistungsrechnen-inf\/der-lehrstuhl\/team\/hochleistungsrechnen\/~qdzr\/simon-schwitanski-m-sc\/?allou=1\">Simon Schwitanski<\/a>, <a href=\"https:\/\/www.itc.rwth-aachen.de\/cms\/it-center\/IT-Center\/Profil\/Team\/~epvp\/Mitarbeiter-CAMPUS-\/?gguid=PER-FSX9U9J&amp;allou=1\">Malak Mostafa<\/a> und <a href=\"https:\/\/www.itc.rwth-aachen.de\/cms\/it-center\/it-center\/profil\/team\/~epvp\/mitarbeiter-campus-\/?gguid=PER-FV6GWWB&amp;allou=1\">Janin Iglauer<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Die Welt des High Performance Computing entwickelt sich rasant weiter und die Rechenkapazit\u00e4ten erreichen neue H\u00f6hen. In diesem Kontext sind Werkzeuge zur Fehlererkennung und -behebung unerl\u00e4sslich, um die Zuverl\u00e4ssigkeit der [&hellip;]<\/p>\n","protected":false},"author":5003,"featured_media":19788,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"c2c_always_allow_admin_comments":false,"footnotes":""},"categories":[306,924,314,315],"tags":[1194,1195,44,23,1193,1115,1086],"class_list":["post-19785","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ankuendigungen","category-hpcnews","category-it-sicherheit","category-services-support","tag-archer","tag-data","tag-daten","tag-hpc","tag-hpc-high-performance-computing","tag-openmp","tag-supercomputer"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts\/19785","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\/5003"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/comments?post=19785"}],"version-history":[{"count":7,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts\/19785\/revisions"}],"predecessor-version":[{"id":21850,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts\/19785\/revisions\/21850"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/media\/19788"}],"wp:attachment":[{"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/media?parent=19785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/categories?post=19785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/tags?post=19785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}