日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用高級編程技術(shù)加速HPC (1/2)

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-10-22 18:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在之前 博客帖子 我談到了使用任務(wù)并行編程模型來提高多核計算節(jié)點的性能和系統(tǒng)利用率的機會。 任務(wù)分配所面臨的主要挑戰(zhàn)是不同計算線程之間的負載不平衡,以及叉連接并行模型有效利用并發(fā)執(zhí)行的局限性。 結(jié)果表明,在來自不同供應(yīng)商的多個處理器中,使用任務(wù)分配共享內(nèi)存代碼具有更好的縮放和性能。 性能改進在10%到20%之間,執(zhí)行時間降低了35。 這些優(yōu)化導(dǎo)致更快的模擬周轉(zhuǎn)時間,加速了全球高性能計算(HPC)用戶的科學(xué)進步。

該研究的重點是共享內(nèi)存并行執(zhí)行在一個節(jié)點的計算使用 OpenMP。 開放MP是HPC中共享內(nèi)存并行和加速器卸載的第一并行編程模型。 然而,大型超級計算機不是單一的共享內(nèi)存系統(tǒng),而是一組計算節(jié)點,每個節(jié)點都有自己的內(nèi)存,通過高帶寬、低延遲網(wǎng)絡(luò)連接。 消息傳遞是這種分布式內(nèi)存系統(tǒng)的首選編程范例。 消息傳遞接口 MPI是HPC分布式內(nèi)存系統(tǒng)的主要并行編程模型。

大多數(shù)科學(xué)和工程應(yīng)用都使用純MPI策略并行化,其中來自參與計算節(jié)點的每個計算線程都工作在總域問題的子域中。 在MPI的上下文中,每個計算線程被稱為MPI進程或秩。 將一個大域劃分為分布在不同等級之間的較小子域的技術(shù)稱為域分解。 通常,這種分區(qū)需要在域空間中作為鄰居的行列之間交換子域邊界數(shù)據(jù)。 在這種情況下,相鄰的等級通過使用MPI接口發(fā)送和接收邊界數(shù)據(jù)來交換消息。 然而,純MPI策略不是利用節(jié)點內(nèi)并行性的最佳選擇。 應(yīng)用程序?qū)ω撦d不平衡變得更加敏感,因此重疊應(yīng)用程序階段和線程變得復(fù)雜。 它們使用不必要的顯式消息進行通信,而不是使用共享內(nèi)存空間。

之間最近的協(xié)作工作 巴塞羅那超級計算中心 and Arm Research 報告的經(jīng)驗,任務(wù)的自適應(yīng)網(wǎng)格細化代碼從 美國Exascale計算項目在開放MP和MPI級別。 本文發(fā)表了實現(xiàn)共享內(nèi)存和分布式內(nèi)存庫的互操作性的性能結(jié)果和收獲“ 面向自適應(yīng)網(wǎng)格細化應(yīng)用的數(shù)據(jù)流并行化 ”他說 IEEECluster 2020會議。 本文詳細介紹了任務(wù)分配方法,該方法利用自動全疊負載平衡和通信計算重疊來實現(xiàn)更好的縮放、更高的系統(tǒng)利用率、效率和性能。

MPI開放MP

在深入研究先進的編程技術(shù)之前,除了純MPI方法外,我們還需要介紹科學(xué)代碼中使用的基本編程策略。 最常見的替代方案是混合并行編程。 將MPI和Open MP結(jié)合起來,使大規(guī)模的科學(xué)代碼并行化,為開發(fā)兩個世界的最佳代碼提供了一個機會,同時減輕了它們的弱點。 混合MPI Open MP應(yīng)用程序創(chuàng)建一組MPI級別,然后每個級別都可以執(zhí)行一組OpenMP線程。

通常,科學(xué)應(yīng)用具有迭代算法。 迭代通常在模擬中執(zhí)行一個時間步驟,其特征是對數(shù)據(jù)進行操作的計算部分,以及一個通信部分,其中等級交換下一次迭代的更新數(shù)據(jù)。 通常,在混合MPI開放MP代碼中,計算部分具有所有MPI級別中的所有OpenMP線程,通信部分具有MPI級別傳遞消息。 通信部分通常由主線程串行執(zhí)行(下圖中用藍色顯示)。 這種簡單的方法通常在混合編程的上下文中被命名為fork-join。

MPI具有完全并行和固有的局部性優(yōu)勢。 MPI應(yīng)用程序中的所有級別從初始化到執(zhí)行結(jié)束獨立運行。 它們在數(shù)據(jù)的私有分區(qū)或副本上工作,從而防止不必要的共享數(shù)據(jù)問題。 另一方面,Open MP本質(zhì)上是串行的,并且只在并行部分上打開并行性,這些并行部分處理共享數(shù)據(jù)。 它還可能受到遠程緩存效果和一致性工件的影響,例如錯誤共享。 開放處理共享數(shù)據(jù)的MP具有避免數(shù)據(jù)復(fù)制以進行消息傳遞的優(yōu)點,因為所有線程都可以訪問數(shù)據(jù)的單個副本。 將這兩種方法結(jié)合起來,允許包含MPI級別,以利用合并消息傳遞模型在分布式內(nèi)存系統(tǒng)中進行通信,每個級別運行OpenMP輕量級線程,利用共享數(shù)據(jù),減少了總體數(shù)據(jù)復(fù)制需求。

程序員肯定可以按照類似的方案使用Open MP編程。 它們可以自始至終具有完整的并發(fā)執(zhí)行,并在仍然訪問共享數(shù)據(jù)的同時跨線程分發(fā)工作。 然而,不幸的是,采用自下而上的方法與Open MP并行是一種常見的做法:并行單個循環(huán)并將串行部分保持在中間。 這就規(guī)定了所規(guī)定的比例限制 Amdahl的法律.

混合應(yīng)用程序中等級的常見配置是每個計算節(jié)點一個等級,或每個非Uniform內(nèi)存訪問(NUMA)節(jié)點一個等級。 在MPI級別中打開MP線程,通過共享內(nèi)存空間中的共享數(shù)據(jù)結(jié)構(gòu)隱式通信,而不是交換MPI消息。 利用每個NUMA節(jié)點的一個秩通常會提高數(shù)據(jù)的局部性,因為給定秩中的線程訪問相同的NUMA節(jié)點的內(nèi)存。 從不同的NUMA節(jié)點訪問內(nèi)存會在線程之間帶來顯著的內(nèi)存延遲差異,從而導(dǎo)致不平衡的場景。

MPI和Open MP之間的互操作性

這種混合模型提供了這兩種模型的優(yōu)點,但在表中留下了機會。 異步傳輸(例如,MPI_Isend/MPI_Irecv)等特性通過允許一些通信和計算重疊來提供混合模型的一些好處。 然而,具有全局同步的fork-join模型(如圖1中綠色所示)限制了計算-通信重疊的數(shù)量,并允許在不同級別的不同迭代中執(zhí)行的重疊。 為了脫離fork-join模型,并允許開發(fā)更高級別的并行性,以及任務(wù)分配提供的異步計算和通信,MPI和OpenMP庫需要一起工作。

這種互操作性今天不存在。 兩個庫相互獨立工作,兩者之間的編排由程序員負責。 在當前的MPI和OpenMP標準中,在并發(fā)任務(wù)中執(zhí)行MPI通信操作(例如,并行交換子域邊界的任務(wù))是兩者 危險的 and 不稱職的.

一方面,從并發(fā)任務(wù)中調(diào)用阻塞MPI函數(shù)是不安全的。 注意,阻塞MPI操作會阻塞MPI庫內(nèi)的當前線程,直到操作完成。 圖2說明了這個問題。 我們假設(shè)一個混合應(yīng)用程序具有兩個MPI等級:一個實例化多個并發(fā)任務(wù)以發(fā)送不同的數(shù)據(jù)塊,另一個實例化相同數(shù)量的并發(fā)任務(wù)以接收數(shù)據(jù)。 我們還假設(shè)它們調(diào)用常見的阻塞MPI_Send和MPI_Recv方法來發(fā)送和接收每個塊,并且每個塊數(shù)據(jù)消息都被標記為其塊標識符。

如果通信任務(wù)的數(shù)量大于可以運行任務(wù)的OpenMP線程的數(shù)量,則程序可能掛起,在這種情況下,OpenMP線程的數(shù)量是每個級別兩個(每個核心一個。 這是因為通信任務(wù)是并發(fā)的,所以O(shè)penMP調(diào)度程序可以根據(jù)調(diào)度策略和執(zhí)行情況自由地決定它們的執(zhí)行順序。 由于不能保證兩個級別的執(zhí)行順序相同,運行中的任務(wù)可能試圖交換一組不同的塊。 這將阻塞MPI庫中兩個級別的Open MP線程,從而引發(fā)死鎖情況。 請注意,當OpenMP線程在MPI庫中阻塞時,OpenMP線程調(diào)度程序無法知道線程已被阻塞,因此無法在該核心上調(diào)度另一個OpenMP線程。 因此,核心不能同時執(zhí)行其他“準備”通信任務(wù)。

圖2:缺乏MPI開放的MP可操作性可能導(dǎo)致MPI調(diào)用任務(wù)的死鎖

另一方面,從任務(wù)中發(fā)布MPI操作通常是低效的。 通信任務(wù)需要人工數(shù)據(jù)依賴,以定義所有級別的相同執(zhí)行順序,并防止以前的死鎖情況。 非阻塞MPI操作(例如,MPI_Irecv)的執(zhí)行,它啟動操作并返回一個MPI請求,以檢查其稍后的完成情況,很難管理內(nèi)部任務(wù)。 用戶將負責手動檢查MPI請求,在大多數(shù)情況下導(dǎo)致算法效率低下。

任務(wù)-軟件MPI(TAMPI)庫

The 任務(wù)-軟件MPI(TAMPI)庫 目的是克服所有這些限制,允許安全和高效地執(zhí)行阻塞和非阻塞MPI操作,從任務(wù)內(nèi)部,在開放MP和 OmpSs-2 任務(wù)型模特。 在調(diào)用阻塞MPI函數(shù)的任務(wù)(例如,MPI_Recv)的情況下,庫暫停任務(wù),直到操作完成,允許其他“就緒”任務(wù)同時在該核心上執(zhí)行。 該庫還為所有非阻塞MPI函數(shù)(例如TAMPI_Irecv)定義了TAMPI變體)。 這些函數(shù)是非阻塞和異步的,將調(diào)用任務(wù)的完成綁定到它們所表示的相應(yīng)的非阻塞操作的最終確定(例如,MPI_Irecv)。 該函數(shù)立即返回,以便即使MPI操作尚未完成,任務(wù)也可以完成其執(zhí)行。 當任務(wù)執(zhí)行完成時,任務(wù)被認為是完成的,所有掛起的MPI操作都完成了。

圖3:HPC軟件堆棧與MPI和開放MP互操作性通過TAMPI。

我們在下面的代碼中展示了如何使用TAMPI支持進行非阻塞操作的示例。 程序同時接收并使用任務(wù)并行處理多個整數(shù)。 第一個任務(wù)是接收機,它調(diào)用TAMPI_Irecv函數(shù)開始接收操作。 這使得任務(wù)完成取決于接收操作的最終完成。 注意,它聲明了對用于接收數(shù)據(jù)的緩沖區(qū)的輸出依賴(即數(shù)據(jù)將寫入緩沖區(qū))。 當操作仍在進行時,TAMPI函數(shù)可能會立即返回,因此緩沖區(qū)不能在那里被消耗。 相反,我們可以在下面的后續(xù)任務(wù)中使用它,該任務(wù)將緩沖區(qū)作為輸入依賴項。 這樣,當MPI操作最終完成時,TAMPI庫將透明地完成接收任務(wù)并滿足消費者任務(wù)的輸入依賴。 這將最終運行以消耗接收到的數(shù)據(jù)。 這樣,TAMPI庫允許開發(fā)人員與多個任務(wù)并行執(zhí)行高效和安全的通信。

int recvdata[N]; MPI_Status status[N]; for (int i = 0; i < N; ++i) { #pragma omp task out(recvdata[i]) out(status[i]) { int tag = i; TAMPI_Irecv(&recvdata[i], 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &status[i]); // non-blocking and asynchronous // recvdata cannot be accessed yet } #pragma omp task in(recvdata[i]) in(status[i]) { check_status(&status[i]); consume_data(&recvdata[i]); } } #pragma omp taskwait

通過利用OpenMP或OmpSS-2等任務(wù)分配模型和TAMPI庫,我們可以對大多數(shù)應(yīng)用程序進行有效的任務(wù)化,包括計算和通信部分。 這導(dǎo)致計算和通信的有效重疊,這是任務(wù)分配模型固有的。 然后,開發(fā)人員可以集中精力公開他們的應(yīng)用程序的并行性,而不是擔心低級方面,例如任務(wù)發(fā)布的MPI操作的處理,這些操作隱藏在TAMPI中。 這種策略還可以通過任務(wù)化高級函數(shù)來實現(xiàn)自上而下的并行化策略,而不是在叉接方法中看到的低效的自下而上策略。

運用我們的方法

到目前為止,我們已經(jīng)探討了MPI和OpenMP之間缺乏互操作性所帶來的問題,以及它如何阻礙MPI級別的任務(wù)分配。 我們還討論了提供在TAMPI中實現(xiàn)的這種互操作性的建議。 在里面 這個博客的第二部分我們研究了如何將所提出的方法應(yīng)用于自適應(yīng)網(wǎng)格細化應(yīng)用。 由此產(chǎn)生的代碼使用任務(wù)跨MPI和開放MP與重要的加速高達12288核心。

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3724

    瀏覽量

    97459
  • HPC
    HPC
    +關(guān)注

    關(guān)注

    0

    文章

    350

    瀏覽量

    25083
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    探索Exar可編程電源技術(shù):XRP7714EVB-DEMO-2-KIT快速上手

    探索Exar可編程電源技術(shù):XRP7714EVB-DEMO-2-KIT快速上手 作為電子工程師,我們總是在尋找創(chuàng)新且高效的電源解決方案。Exar的PowerXR可編程電源
    的頭像 發(fā)表于 04-28 09:05 ?200次閱讀

    LTC6994-1/LTC6994-2:多功能可編程延遲塊的深度解析

    LTC6994-1/LTC6994-2:多功能可編程延遲塊的深度解析 在電子設(shè)計領(lǐng)域,精確的延遲控制和信號處理至關(guān)重要。LTC6994-1/LTC6994-
    的頭像 發(fā)表于 04-02 11:05 ?286次閱讀

    探索LTC6994-1/LTC6994-2:多功能可編程延遲塊的設(shè)計與應(yīng)用

    探索LTC6994-1/LTC6994-2:多功能可編程延遲塊的設(shè)計與應(yīng)用 在電子設(shè)計的領(lǐng)域中,精確的延遲控制和信號處理是許多應(yīng)用的核心需求。今天,我們將深入探討Linear Technology
    的頭像 發(fā)表于 03-30 16:50 ?145次閱讀

    探索 LTC6994-1/LTC6994-2:多功能可編程延遲塊的卓越性能與應(yīng)用

    探索 LTC6994-1/LTC6994-2:多功能可編程延遲塊的卓越性能與應(yīng)用 在電子設(shè)計的領(lǐng)域中,可編程延遲塊是不可或缺的關(guān)鍵組件,它能夠精確控制信號的延遲時間,滿足各種復(fù)雜電路的
    的頭像 發(fā)表于 03-30 16:45 ?160次閱讀

    京微齊力亮相2025國際現(xiàn)場可編程技術(shù)大會

    12月2日-5日,2025年國際現(xiàn)場可編程技術(shù)大會(FPT)在上海成功舉辦,京微齊力應(yīng)邀參加此次行業(yè)盛會,與全球領(lǐng)先的行業(yè)專家學(xué)者,共同探討可編程技術(shù)的創(chuàng)新與發(fā)展。
    的頭像 發(fā)表于 12-10 15:00 ?688次閱讀
    京微齊力亮相2025國際現(xiàn)場可<b class='flag-5'>編程技術(shù)</b>大會

    思爾芯邀您共聚 FPT 2025,賦能可編程技術(shù)新未來

    技術(shù)先鋒,再啟新程!思爾芯將亮相12月2日至5日的2025年國際現(xiàn)場可編程技術(shù)大會(FPT),與全球頂尖專家學(xué)者及行業(yè)伙伴,共同探索可編程技術(shù)的前沿發(fā)展與應(yīng)用創(chuàng)新。FPT是亞太地區(qū)最具
    的頭像 發(fā)表于 11-25 09:57 ?864次閱讀
    思爾芯邀您共聚 FPT 2025,賦能可<b class='flag-5'>編程技術(shù)</b>新未來

    ?TE Connectivity HPC 200A連接器技術(shù)解析與應(yīng)用指南

    通過單極200A/1500V大電流連接器,TE Connectivity (TE) 的 HPC 200A連接器提供一種高安全性和可靠性的電池儲能系統(tǒng) (BESS) 解決方案。TE的HPC 200A
    的頭像 發(fā)表于 11-09 11:44 ?1148次閱讀

    一文了解Mojo編程語言

    Mojo 是一種由 Modular AI 公司開發(fā)的編程語言,旨在將 Python 的易用性與 C 語言的高性能相結(jié)合,特別適合人工智能(AI)、高性能計算(HPC)和系統(tǒng)級編程場景。以下是關(guān)于
    發(fā)表于 11-07 05:59

    TE Connectivity HPC 350A BESS連接器技術(shù)解析與應(yīng)用指南

    TE Connectivity HPC 350A電池儲能系統(tǒng)(BESS) 連接器專注于通過單極350A/1500V大電流連接器提供高安全可靠的解決方案。這些HPC 350A連接器采用一體式成型觸點
    的頭像 發(fā)表于 11-02 17:59 ?1638次閱讀

    RSA加速實現(xiàn)思路

    1 關(guān)于RSA算法 RSA為非對稱加密算法(也稱為公開密鑰算法),是當前比較普遍使用的非對稱加密算法之一,常用于密鑰交換和數(shù)字簽名。RSA是一種較為高級、可基于硬件和軟件實現(xiàn)的加密算法,安全性能高
    發(fā)表于 10-28 07:28

    新思科技測試IO方案加速HPC和AI芯片量產(chǎn)

    為實現(xiàn)更高性能目標,AI與HPC芯片設(shè)計正加速向芯粒架構(gòu)演進。但是傳統(tǒng)單片機SOC已經(jīng)很難在尺寸上繼續(xù)擴張,異構(gòu)集成已成為推動半導(dǎo)體創(chuàng)新的核心動力。然而,它也增加了芯片設(shè)計的復(fù)雜性,需要更先進的測試
    的頭像 發(fā)表于 10-15 11:33 ?908次閱讀
    新思科技測試IO方案<b class='flag-5'>加速</b><b class='flag-5'>HPC</b>和AI芯片量產(chǎn)

    PIC32 WFI32 Curiosity HPC開發(fā)板技術(shù)解析

    Microchip Technology WFI32E02高引腳數(shù) (HPC) Curiosity板 (EV89Y10A) 用于評估和演示具有高達200 MHz CPU時鐘頻率
    的頭像 發(fā)表于 10-09 14:10 ?867次閱讀
    PIC32 WFI32 Curiosity <b class='flag-5'>HPC</b>開發(fā)板<b class='flag-5'>技術(shù)</b>解析

    如何使用MA35D1上的硬件2D加速功能?

    如何使用MA35D1上的硬件2D加速功能?
    發(fā)表于 09-03 07:46

    泰克EA直流可編程電源串聯(lián)技術(shù)助力800V電動汽車高壓架構(gòu)加速落地

    泰克EA直流可編程電源串聯(lián)技術(shù)助力800V電動汽車高壓架構(gòu)加速落地
    的頭像 發(fā)表于 08-04 18:17 ?5662次閱讀
    泰克EA直流可<b class='flag-5'>編程</b>電源串聯(lián)<b class='flag-5'>技術(shù)</b>助力800V電動汽車高壓架構(gòu)<b class='flag-5'>加速</b>落地

    低價甩賣技術(shù)類書

    =DAmh45YKbbx CZ193 「我在閑魚發(fā)布了【人工智能,嵌入式,編程技術(shù)書籍,標價2到3折賣圖中所有書,1】」 點擊鏈接直接打開
    發(fā)表于 07-31 14:20
    新密市| 白山市| 青田县| 新干县| 咸宁市| 日土县| 隆化县| 胶州市| 新疆| 长岭县| 昌宁县| 呼和浩特市| 朔州市| 五家渠市| 望奎县| 中牟县| 黔江区| 喀什市| 漾濞| 霍林郭勒市| 岚皋县| 惠安县| 永平县| 乌兰察布市| 龙海市| 建湖县| 镇远县| 岑巩县| 湘阴县| 聂荣县| 义马市| 同德县| 会东县| 光山县| 灵石县| 临武县| 昂仁县| 体育| 江津市| 和田市| 东乡族自治县|