新聞報導,中國大陸設計的超級電腦「星雲」,以每秒1270萬億次(1.27 peta flop)計算能力,在世界500大超級電腦中,名列第二,僅次於美國的「美洲豹」(1750萬億次/秒)。


 


另一部「天河一號」,名列第七。


 


掌握計算能力,不僅是國家的夢想,也是許多工程師的夢想。


 


1980年,在德國留學時,八位元的電腦剛剛成為商品,有一種品牌:commodor-64,已經初具個人電腦功能。


 


當時許多大陸學者,捨不得吃,捨不得穿,但是要買一個小電腦,因為可以在家裡做一些計算工作。


 


當時研究所裡,有個波蘭來的訪問學者,他有一台HPCalculator,可以寫程式,竟然,他的論文數據,是在上面計算出來。


 


我後來自己組裝了一台Z80A的電腦,又擴展成MC68008的電腦,蒐集了許多免費的軟體,帶回台灣。


 


最後,都丟了。


 


雖然我的專業不是計算,擁有自己的計算能力,一直在我的潛意識中。


 


工作的時候,有許多想學習的技能,都與掌握自己的計算能力有關。


 


其中,高階語言MatlabC++的相互呼叫,一直使我怦然心動。


另外還有基本的parallel computing,以及romote monitoring等。


 


過去四天來,開始學習MatlabC++的互相呼叫。


 


先弄會在C++中開啟及使用Matlab的資料檔mat files,這部分比較簡單。


 


接著,在Matlab呼叫C++程式。


 


我用Visual C++ V9.0修改以前寫的一批檔案,總是不成!


 


後來發現,Matlab自己有一個Mex檔,可以編譯C語言的程式。


 


但是,還是不行!


 


top-down方式修改了幾個檔案,都已經刪減到只剩骨架,code已經沒有問題,卻還是不行!


 


最後,改用bottom-up方式,由一個非常簡單,但是ok的程式,慢慢擴大,寫成以前的模樣。


 


也不成!


 


最後發現,是一碰到非線性數學計算,就當掉,而那些數學計算,例如開根號,或求指數,都不可或缺。


 


最後一試,把牽涉到數學計算的變數宣告為output variable,居然成了!


 


Why


不知道!


 


終於,可以由Matlab中呼叫C++程式,以後,Matlab的方便,與C++的快速,可以結合了!


 


掌握計算能力,要做什麼呢?


 


什麼也沒用,只是一種潛在的心理傾向。


 


以前有一句話:掌握計算機的手,就是掌握世界的手。


 


中國大陸有了「星雲」與「天河」,那將增強他們掌握世界的能力。


 


而我,在筆記型電腦的Matlab中,成功呼叫另一個C++程式,雖然什麼也掌握不了,但是,已經填補了我內心的一個小小空格。


 


 

arrow
arrow
    全站熱搜

    海歌 發表在 痞客邦 留言(0) 人氣()