{"id":38137,"date":"2019-10-31T22:21:53","date_gmt":"2019-10-31T19:21:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/proekt-po-dobavleniyu-v-gcc-podderzhki-rasparallelivaniya-protsessa-kompilyatsii\/"},"modified":"2019-10-31T22:21:53","modified_gmt":"2019-10-31T19:21:53","slug":"proekt-po-dobavleniyu-v-gcc-podderzhki-rasparallelivaniya-protsessa-kompilyatsii","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/proekt-po-dobavleniyu-v-gcc-podderzhki-rasparallelivaniya-protsessa-kompilyatsii","title":{"rendered":"Projekt zur Hinzuf\u00fcgung von GCC-Unterst\u00fctzung f\u00fcr die Parallelisierung des Kompilierungsprozesses","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Im Rahmen des Forschungsprojekts <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/wiki\/ParallelGcc\">Parallel GCC<\/a><\/noindex> wurde mit der Implementierung einer Funktion begonnen, die es erm\u00f6glicht, den Kompilierungsprozess in mehrere parallel ausgef\u00fchrte Threads zu unterteilen. Derzeit wird zur Verbesserung der Geschwindigkeit des Build-Prozesses auf Mehrkernsystemen das Starten separater Compiler-Prozesse auf der Ebene des Make-Tools verwendet, wobei jeder Prozess eine separate Datei mit Code kompiliert. Das neue Projekt experimentiert mit der Bereitstellung von Parallelisierung auf der Ebene des Compilers, was potenziell die Effizienz auf Mehrkernsystemen erh\u00f6hen k\u00f6nnte. <\/p>\n<p>F\u00fcr Tests <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/flusp\/gcc\/tree\/giulianob_parallel\">wurde vorbereitet<\/a><\/noindex> eine separate parallelisierende GCC-Branch, in der ein neuer Parameter f\u00fcr die Angabe der Anzahl der Threads vorgeschlagen wurde &#171;&#8212;param=num-threads=N&#187;. In der Anfangsphase wurden die interproceduralen Optimierungen in separate Ausf\u00fchrungs-Threads ausgelagert, die zyklisch f\u00fcr jede Funktion aufgerufen werden und gut parallelisierbar sind. In separate Threads wurden GIMPLE-Operationen ausgelagert, die f\u00fcr hardwareunabh\u00e4ngige Optimierungen verantwortlich sind und die Interaktionen zwischen den Funktionen bewerten.<\/p>\n<p>In der n\u00e4chsten Phase ist geplant, auch inter-procedurale RTL-Optimierungen, die die spezifischen Eigenschaften der Hardwareplattform ber\u00fccksichtigen, in separate Threads auszulagern. Danach soll die Parallelisierung von Intra-Procedural-Optimierungen (IPA), die auf Code innerhalb der Funktion angewendet wird, unabh\u00e4ngig von den Besonderheiten des Aufrufs, realisiert werden. Ein begrenzender Faktor ist derzeit der Garbage Collector, dem eine globale Sperre hinzugef\u00fcgt wurde, die Garbage Collection-Operationen w\u00e4hrend des Multithread-Betriebs deaktiviert (in Zukunft wird der Garbage Collector f\u00fcr die Multithread-Ausf\u00fchrung von GCC angepasst werden).<\/p>\n<p>Zur Bewertung der Leistungs\u00e4nderung wurde ein Testset vorbereitet, das die Kompilierung der Datei gimple-match.c durchf\u00fchrt, die mehr als 100.000 Zeilen Code und 1.700 Funktionen umfasst. Tests auf einem System mit einem Intel Core i5-8250U CPU mit 4 physischen Kernen und 8 virtuellen Kernen (Hyperthreading) zeigten eine Reduzierung der Ausf\u00fchrungszeit der Intra-Procedure-GIMPLE-Optimierungen von 7 auf 4 Sekunden bei Verwendung von 2 Threads und auf 3 Sekunden bei 4 Threads. Das bedeutet eine Geschwindigkeitssteigerung der betreffenden Build-Phase um 1,72 und 2,52 Mal, entsprechend. Die Tests zeigten auch, dass die Verwendung virtueller Kerne bei Hyperthreading nicht zu einem Anstieg der Leistung f\u00fchrt. <\/p>\n<p><center><img decoding=\"async\" alt=\"Projekt zur Hinzuf\u00fcgung von GCC-Unterst\u00fctzung f\u00fcr die Parallelisierung des Kompilierungsprozesses\" src=\"\/wp-content\/uploads\/2019\/09\/c2d0ed085f0247e497e671c13cb06505.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<p>Die gesamte Montagezeit hat sich um etwa 10 % verringert, aber laut Prognosen wird die Parallelisierung von RTL-Optimierungen zu sp\u00fcrbareren Ergebnissen f\u00fchren, da diese Phase bei der Kompilierung erheblich mehr Zeit in Anspruch nimmt. Sch\u00e4tzungsweise wird sich nach der Parallelisierung von RTL die gesamte Montagezeit um das 1,61-Fache reduzieren. Dar\u00fcber hinaus kann die Montagezeit durch die Parallelisierung von IPA-Optimierungen um weitere 5-10 % verk\u00fcrzt werden.<\/p>\n<p><center><img decoding=\"async\" alt=\"Projekt zur Hinzuf\u00fcgung von GCC-Unterst\u00fctzung f\u00fcr die Parallelisierung des Kompilierungsprozesses\" src=\"\/wp-content\/uploads\/2019\/09\/efea1dac269fb10e57a05778e5e1467f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Quelle: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51491\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Parallel GCC \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0432 GCC \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u044f\u0434\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b make \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0443\u0441\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0431\u043e\u0440\u043a\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0441 \u043a\u043e\u0434\u043e\u043c. \u041d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0441 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28626,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-38137","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Parallel GCC \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0432 GCC \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/proekt-po-dobavleniyu-v-gcc-podderzhki-rasparallelivaniya-protsessa-kompilyatsii\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0432 GCC \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Parallel GCC \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0432 GCC \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/proekt-po-dobavleniyu-v-gcc-podderzhki-rasparallelivaniya-protsessa-kompilyatsii\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:21:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:21:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Projekt zur Hinzuf\u00fcgung der Unterst\u00fctzung f\u00fcr die Parallelisierung des Kompilierungsprozesses in GCC | ProHoster","description":"Im Rahmen des Forschungsprojekts Parallel GCC wurde mit der Arbeit an der Erweiterung von GCC um die M\u00f6glichkeit zur Prozessunterteilung begonnen.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/proekt-po-dobavleniyu-v-gcc-podderzhki-rasparallelivaniya-protsessa-kompilyatsii","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0432 GCC \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 | ProHoster","og:description":"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Parallel GCC \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0432 GCC \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441.","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/proekt-po-dobavleniyu-v-gcc-podderzhki-rasparallelivaniya-protsessa-kompilyatsii","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:21:53+00:00","article:modified_time":"2019-10-31T19:21:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38137","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 20:36:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:14:23","updated":"2026-01-23 20:36:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/38137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=38137"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/38137\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/28626"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=38137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=38137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=38137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}