同僚と Fork/Join Framework について話す機会があり、ちょっと気になったので調べてみました。ちなみに、ソースは jdk1.7.0_25 です。 native なのか Java なのか? native とかは使わないで普通に Java の Thred クラスを利用して実装しているようでした。そのように判断した理由は以下の通りです。 ForkJoinWorkerThread 自体は Thread クラスを継承している ForkJoinPool#invoke から RecursiveTask#compute までのソースを見た感じ、普通に Java のコードだった ForkJoinWorkerThread の生成タイミング ForkJoinPool#invoke の中で ForkJoinWorkerThread を生成しているみたいでした。 registerWorker(For
An Introduction Concurrency A property of systems whose global state is composed of the interleaved execution of independent or partially-independent components. Parallelism Parallel systems exhibit concurrency but one or more components may execute at the same time. Concurrent Data Structures A data structure that is shared by cooperating processes. Concurrent execution of operations may render a
Pages: 1 2 3 4 Two of my personal areas of interest and expertise are speculative multithreading (SpMT) and transactional memory (or TM). Both are techniques designed to make multi-core processors and parallel programming more amenable to developers. For several years, I was the co-founder of Strandera, a start up that was developing speculative multithreading, based on transactional memory and dy
Transactional Programming In A Multi-core Environment Ali-Reza Adl-Tabatabai Intel Corp. Christos Kozyrakis Stanford U. Bratin Saha Intel Corp. PACT 2007 Tutorial, September16th, 2007 Presenters � Ali-Reza Adl-Tabatabai, Intel � Principal Engineer, Programming Systems Lab at Intel � Compilers & runtimes for future Intel architectures � PhD. CMU � Christos Kozyrakis, Stanford University Assistant P
@overlastさんのお誘いにより招待講演という形でDSIRNLP勉強会で発表をしました。 IRともNLPとも関係のない話ですが、冬のLock-free祭りという題目でお腹いっぱい話せました。 発表資料はこちら 冬のLock free祭り safe View more presentations from Kumazaki Hiroki ↑だとアニメーションが死んでてイミフになってるので↓がおすすめです。一番良いのはPowerPoint2007以降で再生することですが。 http://www.slideboom.com/presentations/460931/%E5%86%AC%E3%81%AELock-Free%E7%A5%AD%E3%82%8A_safe アニメーション有りなら深く考えずめくっていくだけでおおよその雰囲気は掴めるんじゃないかと思います。 総ページ数190枚の大作です
前回の記事:C++0x Memory Model 第0回 - メモリモデルとは何か 以下では, C++0x プログラミング言語の標準規格として一貫して N3225 を参照しています.文中で (1.9/12) などという表現が出てきた場合は N3225 における条項を指しています. 太字かつ斜字体の言葉 は N3225 で C++0x で定義される用語, 太字の言葉 は本ブログエントリ中で特別な意味を持たせた用語として定義しているものです. 第1回目のこの記事では,まず,ただ1つの 実行スレッド thread of execution だけを考慮した場合のメモリモデルに関わる基本的な事項を説明していきます.複数スレッドが存在する状況下でのメモリモデルに関する説明する上で,単一の実行スレッド内に限定した場合の状況を把握しておくことは必要不可欠なのです. 第0回において,プログラム中にただ1つの
In software engineering, double-checked locking (also known as "double-checked locking optimization"[1]) is a software design pattern used to reduce the overhead of acquiring a lock by testing the locking criterion (the "lock hint") before acquiring the lock. Locking occurs only if the locking criterion check indicates that locking is required. The original form of the pattern, appearing in Patter
CACM Web Account Membership in ACM includes a subscription to Communications of the ACM (CACM), the computing industry's most trusted source for staying connected to the world of advanced computing. Sign In Sign Up Most parallel programs today are written using threads and shared variables. Although there is no consensus on parallel programming models, there are a number of reasons why threads rem
Dekker's Algorithm しかし、排他制御を実現するのにLoad Linked/Store ConditionalやTest and Setなどの特別な命令を使わない方法も存在する。次に述べるのはDekker's Algorithmという方法である。 最初はプロセサAとプロセサBの札メモリA、Bはゼロとしておき、 プロセサAが、 (1) St [A]←1 (2) Ld R1←[B] プロセサBは、 (3) St [B]←1 (4) Ld R1←[A] と、自分の札メモリに1を書き込み、その後、相手の札メモリを読む。このようにすると、これらの命令のメモリへのアクセス順序と、プロセサA、Bが読む値は、 (1)(2)(3)(4) プロセサA:0、プロセサB:1 (1)(3)(2)(4) プロセサA:1、プロセサB:1 (1)(3)(4)(2) プロセサA:1、プロセサB:1 (3)(
Biased Locking January 9, 2010 Recently I re-did HotSpot's internal locking mechanism for Azul's JVM. The old locking mechanism is approaching 15 years old and features a number of design decisions that are now out-dated: Recursion counts are kept as a NULL word on the stack for every recursion depth (i.e., counting in Base 1 math) in order to save a few instructions and a few bits of memory.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く