{"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\/et\/blog\/news\/proekt-po-dobavleniyu-v-gcc-podderzhki-rasparallelivaniya-protsessa-kompilyatsii","title":{"rendered":"Projekt GCC-s kompilatsiooni protsessi paralleelimise toetuse lisamiseks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Uuringu projekti raames <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/wiki\/ParallelGcc\">Parallel GCC<\/a><\/noindex> alustasid t\u00f6\u00f6d GCC-sse v\u00f5imaluse lisamiseks, mis v\u00f5imaldab jagada kompileerimisprotsessi mitmeks paralleelselt teostatavaks vooks. Praegu kasutatakse mitu kompilaatoriprotsessi, et kiirendada kokkupanekut mitme tuumaga s\u00fcsteemides, kus iga protsess koostab eraldi koodifaili. Uus projekt katsetab kompilaatori tasandil paralleelset t\u00f6\u00f6tlemist, mis v\u00f5iks potentsiaalselt t\u00f5sta efektiivsust mitme tuumaga s\u00fcsteemide kasutamisel. <\/p>\n<p>Testimiseks <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/flusp\/gcc\/tree\/giulianob_parallel\">valmistatud<\/a><\/noindex> GCC eraldi paralleelimist tegitav haru, kus voogude arvu m\u00e4\u00e4ramiseks on ette n\u00e4htud uus parameeter &#171;&#8212;param=num-threads=N&#187;. Algfaasis on rakendatud vahekordade kohaletoimetamine eraldi t\u00e4itmisvooludesse, mis kutsutakse ts\u00fckliliselt v\u00e4lja iga funktsiooni jaoks ja sobivad h\u00e4sti paralleelseks t\u00f6\u00f6tlemiseks. Eraldi voogudesse on viidud GIMPLE operatsioonid, mis vastutavad seadme s\u00f5ltumatute optimisatsioonide eest, hinnates funktsioonide vahelist interaktsiooni.<\/p>\n<p>J\u00e4rgmises etapis plaanitakse viia eraldi voogudesse ka interprotseduurseid RTL-optimeerimisi, mis arvestavad riistvaraplatvormi erip\u00e4rasid. P\u00e4rast seda plaanitakse realiseerida sisepostede optimeerimise (IPA) paralleelset t\u00f6\u00f6tlemist, mis kehtib koodi kohta, mis asub funktsiooni sees, s\u00f5ltumatult v\u00e4ljakutsumise erip\u00e4radest. Olenemata sellest, et praegune kitsaskoht on pr\u00fcgikoguja, millele on lisatud globaalne lukustus, mis v\u00e4listab pr\u00fcgikogumise operatsioonide toimimise mitme l\u00f5ime re\u017eiimis (tulevikus kohandatakse pr\u00fcgikoguja mitme vooga GCC jooksmiseks).<\/p>\n<p>J\u00f5udluse muutuse hindamiseks on koostatud testkomplekt, mis teostab faili gimple-match.c kokkupaneku, mis sisaldab \u00fcle 100 000 koodirea ja 1700 funktsiooni. Testid Intel Core i5-8250U protsessoriga s\u00fcsteemis, millel on 4 f\u00fc\u00fcsilist tuuma ja 8 virtuaalset (Hyperthreading), n\u00e4itasid Intra Procedural GIMPLE optimeerimiste t\u00e4itmise aja v\u00e4henemist 7 sekundilt 4 sekundile 2 voogu k\u00e4ivitades ja 3 sekundile 4 voogu k\u00e4ivitades, st saavutatud on kiirus, mis on 1,72 ja 2,52 korda t\u00f5husam vastavalt. Testid n\u00e4itasid ka, et virtuaalsete tuumade kasutamine Hyperthreadingu puhul ei too kaasa j\u00f5udluse kasvu. <\/p>\n<p><center><img decoding=\"async\" alt=\"Projekt GCC-s kompilatsiooni protsessi paralleelimise toetuse lisamiseks\" src=\"\/wp-content\/uploads\/2019\/09\/c2d0ed085f0247e497e671c13cb06505.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<p>Koguaegne ehitusaeg on v\u00e4henenud umbes 10%, kuid prognooside kohaselt v\u00f5imaldab RTL-optimeerimise paralleelne t\u00f6\u00f6tlemine saavutada veelgi t\u00e4helepanuv\u00e4\u00e4rsemaid tulemusi, kuna see etapp v\u00f5tab kompileerimise ajal palju rohkem aega. Umbes p\u00e4rast RTL-i paralleelset t\u00f6\u00f6tlemist v\u00e4heneb koguaeg ehitamiseks 1,61 korda. P\u00e4rast seda on veel 5-10% ehitusaega v\u00f5imalik v\u00e4hendada IPA optimeerimiste paralleelse t\u00f6\u00f6tlemisega.<\/p>\n<p><center><img decoding=\"async\" alt=\"Projekt GCC-s kompilatsiooni protsessi paralleelimise toetuse lisamiseks\" 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>Allikas: <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\/et\/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=\"et_EE\" \/>\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\/et\/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\udd47GCC toetuse lisamise projekt t\u00f5lkeprotsessi paralleelse t\u00f6\u00f6tlemise jaoks | ProHoster","description":"Uuringuprojekti Parallel GCC raames on alanud t\u00f6\u00f6 GCC-s v\u00f5imaluse lisamiseks, mis v\u00f5imaldab protsessi jagada.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/proekt-po-dobavleniyu-v-gcc-podderzhki-rasparallelivaniya-protsessa-kompilyatsii","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/38137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=38137"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/38137\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/28626"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=38137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=38137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=38137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}