並行程式設計中應注意的問題

2021-04-18 02:35:53 字數 632 閱讀 3497

隨著多核技術的發展和個人超級計算機的引入,如何更好的利用多核、多結點是乙個亟需解決的問題。多核技術是在每個cpu晶元上整合多個計算核,它和**p(對稱多處理器)最大的區別就在於多核cpu有更大的l2 cache,並且多個計算核共用片上的快取(有的共用l2 cache,有的共用l3 cache)。這就是說,如果編寫的程式能夠更好的利用cache,程式的效能將會得到10倍,20倍的提高。cache的低效率使用體現在:第一,程式的區域性性不好,如陣列的存放跨度大,記憶體的訪問不具有順序性,而是隨即亂序訪問。第二,對cache line的爭用,即偽共享或者桌球效應。多個執行緒同時爭搶乙個cache line,並寫進行寫操作,這樣cache line將會頻繁的重新整理,降低效率。造成這個的原因就是多個執行緒訪問的資料存放太近。

在非記憶體統一編址的程式設計模型中,即多結點的集群系統,mpi是乙個訊息傳遞的標準。在訊息傳遞中,集合通訊和同步是耗時比較長的操作。如果程式任務劃分的不均衡,在同步時的耗時將會更加嚴重。所以在mpi程式設計中,均衡的劃分任務非常的重要。現在一般都會引入動態的任務劃分,這樣任務能夠很均衡的分配到各個節點上,但是存在master程序這個失效點,以及額外的並行管理開銷。所以一些能夠靜態劃分好的任務就不需要用動態的分配方案。

本文只是簡要的介紹了一下在並行程式設計時需要注意的一些基本問題,如果需要更詳細的資料可以和我**。

應注意的問題

1.區域性變數的名稱要有意義,盡量用對應的英文命名,比如 使用者姓名 變數,不要用aa bb cc等來命名,而要使用username。2.不要使用單個字母的變數,如i n x等。而要使用index temp等。用於迴圈迭代的變數例外。3.應該使用pascal命名法命名方法名 屬性名 類名和命名空間,...

網路佈線中應注意的問題

網路佈線中應注意的問題 設計階段 工程設計將對佈線全過程產生決定性的影響,故設計者應認真審慎,做充分地調查研究,收集相關資料 包括建築物的一些圖紙資料 裝修的圖紙資料以及其它工程的資料,還有佈線方面的資料等等 並應該充分考慮到經濟條件 應用需求 施工進度要求等各個方面。如果大樓尚在籌建之中就提出綜合...

網頁設計中應注意的細節問題

網頁設計其實和製作像平面一樣,畢竟前台有時間也是通過平面設計之後再切圖生成html網頁的,因此也有自己的規則,以下是需要注意的一些問題 我強掉,細節很重要。1 配色問題 乙個網頁的色彩最好不要超過3種,一面視覺效果混亂,用色柔和,對比度強的色彩不能應用於一般 時尚 使用還可以。一般不好搭配的顏色,用...