asc比賽需要會什么?
說到需要什么方面的知識,我覺得和一個隊伍要達到的目標相關。個人認為目標可以分為三檔,由易到難。三個目標分別是
能順利在集群上運行比賽要跑的程序。
能夠理解應用背后的理論知識。
能夠利用應用的背景知識和計算機的知識去優化應用(主要是代碼層面)。
要達到第一個目標,首先需要掌握最基礎的1)搭建集群知識(大致可以等價于Linux運維)和2)程序編譯和運行的知識。搭建集群簡單來說就是安裝Linux系統,配置好網絡(以太網和InfiniBand),然后安裝一些必要的軟件包(比如CUDA,IntelParallelStudio)等。這些網上應該有很多資料,對于CUDA和InfiniBand什么的最好讀一讀安裝文檔(俗話說得好,readthef*ckingmenu)。編譯和運行主要是指明白怎么用編譯器編譯、鏈接,怎么做一些簡單的優化,編譯出了錯誤怎么解決,怎么運行MPI或者OpenMP程序等。掌握了這些基礎知識,應該最起碼可以順利地跑起來比賽的各個應用并作適當的優化。
要達到第二個目標,主要就是數學知識。大部分參賽應用背后都是線性代數,偏微分方程等等。如果有一些數學基礎的話,大致理解應用的原理應該不是太難(量子化學等除外)。知道了這些可以更好的去調試程序運行的參數,達到更好的精度或者更快的速度。
要達到第三個目標,主要是靠積累。代碼優化這個東西能做的實在是太多了,每個應用能做的也不一樣,沒有固定的套路,所以主要是靠平日的積累(在這看點在那看點就積累下來了,也沒有一個什么優化大全這樣的東西,畢竟涉及的面太廣)。單獨針對一個應用來說的話,可以讀一些應用相關的論文,搜索引擎直接搜可能搜不到什么有用的。
如果說學習的書和資料的話,你可以順著我講的去搜一下每個方向有什么好的資料推薦。入門的話簡單了解就好,不用一個方向扣的太深。我個人并沒什么特別突出的書推薦,我們隊也沒有什么公認的教材什么的,主要是涉及的東西真得是太散了。
如何實現Mac和parallel之間文件互傳?
去下載parallelfromac或者vmwarefusionformac,把他們安裝在mac電腦里,然后打開,它就會指導你一步一步怎么安裝了,非常簡單。不過需要一張系統盤,沒有系統盤就下載個winows系統鏡像。