小弟不才
想詢問各位大大
有哪些是支援多核心的程式設計軟體?
VB有嗎
C++有嗎
JAVA有嗎
還是有別的設計軟體

只要能寫 Multiple thread 的程式語言,就都可以透過 OS 獲得多顆 CPU 的執行好處了
大概近代流行的語言都有吧, C++, Java, Python, .NET 家族, balabala
如果,你是要針對多顆 CPU 最佳化的,包含資料結構, 還有 memory 的使用...,
那請上網找 "parallel computing"
另外推一個 open source project 叫 Thread Building Block http://www.threadingbuildingblocks.org/
這個是 intel 搞的 open source project
針對現在越來越多的多核 CPU 或多 CPU電腦所寫的一套 threading library
除了跨平台外,他還提供了包含平行處理需要的一些特別的資料結構...
有興趣的話就找書來看吧

只要能寫 Multiple thread 的程式語言,就都可以透過 OS 獲得多顆 CPU 的執行好處了
大概近代流行的語言都有吧, C++, Java, Python, .NET 家族, balabala
如果,你是要針對多顆 CPU 最佳化的,包含資料結構, 還有 memory 的使用...,
那請上網找 "parallel computing"
另外推一個 open source project 叫 Thread Building Block http://www.threadingbuildingblocks.org/
這個是 intel 搞的 open source project
針對現在越來越多的多核 CPU 或多 CPU電腦所寫的一套 threading library
除了跨平台外,他還提供了包含平行處理需要的一些特別的資料結構...
有興趣的話就找書來看吧
如果說運用了multi threading去設計軟體就是利用多核心那只是這個問題的表面.
畢竟在單一 thread裡的程式碼還是只能用一個核心.
舉例來說,通常我們常寫迴圈處理程序:
for (int i=0;i<1000;i++)
{
do something ... (指令1)
do something ... (指令2)
}
假設你有顆雙核心的CPU.
就這個迴圈而言,要循序執行指令1,指令2,1萬次.且每一個指令在執行時只能使用一個核心.
假設每個指令要花費1秒,那總共要花費2萬秒才能完成整個工作.
以修改程式碼來達成支援雙核心:
大約可以改寫成變成:
main ()
{
CALL THREAD1 (looping1); <--啟動第一個執行序 (使用一個核心)
CALL THREAD2 (looping2); <--啟動第二個執行序 (使用一個核心)
Wait_jobs_Finished (); <--等所有的執行序處理完
}
looping1 ()
{
for (int i=0;i<5000;i++)
{
do something ... (指令1)
do something ... (指令2)
}
}
looping2 ()
{
for (int i=5001;i<10000;i++)
{
do something ... (指令1)
do something ... (指令2)
}
}
這樣的修改理論上可以提昇效能,節省接近一倍的時間 (實際上還要一些同步等待等等成本時間)
但這並不是理想中的形式,而且會增加大量的軟體開發成本.
多核心解決方案主要就是要在"不用修改程式碼"的情況下,達到接近 (2萬秒/核心數)的效能.
個人覺得新一代的作業系統必定會就此方向去做改良(不過還有得等)!!
關閉廣告