文章目錄
Brief
先修要求
C/C++編程基礎
Brief Inttroduction of Programing Facilities
兩個環境
1、自己的電腦
2、系裏的高性能計算集羣
使用linux系統
Linux Basic
顯示Ubuntu版本的命令
cat /etc/issue
瞭解CPU的性能
lscpu
顯示出來是虛擬機可以用的核的數量,說明只能有圖示這麼多線程。
串行編程無法充分利用多核CPU
芯片的物理特性
更小的晶體管會製造更快的處理器,跟更快的處理器會帶來更大的功耗,更大的功耗會帶來更多熱量,更多的熱量會造成不穩定的處理器
core指的就是CPU,多核就是多CPU
使用的計算集羣
- 每位同學面對的機器就是client
- 高性能計算集羣就是方框裏面的機器,之間通過高速網絡互聯
- 要使用時,先由本地計算機連接至Jump Server,再通過它連接至其他的worker機器
- 也有可能你將自己的計算任務提交至Jump Server,由他來分配計算任務
遠程連接方法
摩爾定律
超級計算機的浮點計算能力
橫軸是超級計算機的性能
我們國家最快的超級計算機是神威太湖之光
一個芯片中有260個核心,超過一千萬個核心
晶體管相關的物理知識
尺寸變小,可以提高時鐘頻率,但是從2012年就不能提高了,會帶來功耗的提高
如果繼續提高時鐘頻率的話,會導致動態功耗迅速增大。如果按照正常的速度增長,芯片功耗會在2008年增漲到核反應的級別,在2001年會達到火箭發射口的功率
因此只能充分應用硬件
對串行程序進行重寫
如何進行並行編程
在並行計算中核之間協調工作的類型
分享內存式:
數據並行
每個核做的是一樣的事
任務並行
每個核做的任務不一樣
需要注意的地方
顯式地進行編程
併發計算、並行計算、分佈計算
- 串行程序不能充分利用硬件
- 也不能自動將串行程序轉化爲並行程序,因此學習高性能計算就非常必要。
- 如何更好地協調多個計算核心
- 單核計算機上不能並行計算