Doug Lea談JDK7的Fork/Join框架
Doug Lea是著名的平行計算專家,NIO socket最初來源其設計框架,最近接受InfoQ影片訪問,談論具有革命性意義的Fork/Join框架, 這個新特性將計劃在Java 7的java.util.concurrent中提供。
Fork/Join是一個更容易執行高效能 平行計算以及細粒度的任務的引擎,因為目前主流是關注伺服器端非同步通訊,它工作於多核晶片系統。類似將任務分兩部分同時執行,然後將結果融合。
就像同時在做某件事,你會隔段時間將一些任務放到一個佇列中,看看有沒有別人會偷些任務去做,如果有,說明他們的任務不飽和,能夠幫助你做些事情,如果你掛Hang在那裡,表明你有很多事情要做。
Scala 和Clojure 都已經能很好實現Fork/Join這些平行計算模型。Clojure 和Scala actor模型使用類似引擎實現並行拆封。 這個基本的work-stealing框架適合很多很多應用場景。
Fork/Join框架希望將來能夠支撐數百個CPU,並試圖挑戰1000核。
該訪談也談到了程式設計模式的挑戰,過去大家學習的都是先後順序程式設計正規化,而平行計算帶來了併發平行計算正規化,程式碼執行可能是隨意無先後的執行,如何適應這種新變化?Doug Lea認為這已經不只是技術問題,而是藝術問題了,建議看看"The art of multiprocessor programming"多核程式設計藝術這本書。
更多可參考訪談原文。
Fork/Join是一個更容易執行高效能 平行計算以及細粒度的任務的引擎,因為目前主流是關注伺服器端非同步通訊,它工作於多核晶片系統。類似將任務分兩部分同時執行,然後將結果融合。
就像同時在做某件事,你會隔段時間將一些任務放到一個佇列中,看看有沒有別人會偷些任務去做,如果有,說明他們的任務不飽和,能夠幫助你做些事情,如果你掛Hang在那裡,表明你有很多事情要做。
Scala 和Clojure 都已經能很好實現Fork/Join這些平行計算模型。Clojure 和Scala actor模型使用類似引擎實現並行拆封。 這個基本的work-stealing框架適合很多很多應用場景。
Fork/Join框架希望將來能夠支撐數百個CPU,並試圖挑戰1000核。
該訪談也談到了程式設計模式的挑戰,過去大家學習的都是先後順序程式設計正規化,而平行計算帶來了併發平行計算正規化,程式碼執行可能是隨意無先後的執行,如何適應這種新變化?Doug Lea認為這已經不只是技術問題,而是藝術問題了,建議看看"The art of multiprocessor programming"多核程式設計藝術這本書。
更多可參考訪談原文。
[該貼被banq於2010-01-26 14:13修改過]
相關文章
- Fork/Join框架框架
- Fork/Join 框架框架
- Java Fork/Join 框架Java框架
- 談談fork/join實現原理
- JUC之Fork/Join框架框架
- Java併發 -- Fork/Join框架Java框架
- Doug Lea併發設計模式(JUC學習前奏)設計模式
- Doug Lea大師的佳作CopyOnWriteArrayList,用不好能坑死你!
- Fork Join 併發任務執行框架框架
- Java併發6:阻塞佇列,Fork/Join框架Java佇列框架
- Java7提供的並行執行任務框架:Fork、Join框架Java並行框架
- Doug Lea在J.U.C包裡面寫的BUG又被網友發現了
- java多執行緒8:阻塞佇列與Fork/Join框架Java執行緒佇列框架
- Java併發程式設計(07):Fork/Join框架機制詳解Java程式設計框架
- 面試官:說說你對Fork/Join的平行計算框架的瞭解?面試框架
- MapReduce框架-Join的使用框架
- Java併發基礎-Fork、Join方式的平行計算研究分析Java
- 談談hive中join下on和whereHive
- ☕【Java技術指南】「併發程式設計專題」Fork/Join框架基本使用和原理探究(原理及原始碼篇)Java程式設計框架原始碼
- php的lavarel框架中join和orWhere的用法PHP框架
- 多執行緒高併發程式設計(8) -- Fork/Join原始碼分析執行緒程式設計原始碼
- join、inner join、left join、right join、outer join的區別
- 談談Android專案框架的前世今生Android框架
- Mysql join 的本質,Nested Loop Join 和 Hash JoinMySqlOOP
- sql的left join 、right join 、inner join之間的區別SQL
- mysql中的left join、right join 、inner join的詳細用法MySql
- Linux fork程式的用法Linux
- 談,前端框架的『御劍之道』前端框架
- MySQL LEFT JOIN/ INNER JOIN/RIGHT JOINMySql
- 淺談Spring框架Spring框架
- Fork倉庫
- 簡單談談Hilt——依賴注入框架依賴注入框架
- Inner Join, Left Outer Join和Association的區別
- java的join()方法Java
- MySQL JOIN的使用MySql
- 初學linux的fork筆記Linux筆記
- 關於Fork和Malloc的思考
- mysql left join轉inner joinMySql
- NIO的介紹和JDK7下NIO的一個案例JDK