読書会(JAVA CONCURRENCY IN PRACTICE)第9回議事録

[ 戻る ]


Java読書会「Java並行処理プログラミング」を読む会(第9回)

出席者:根本、石黒、岡澤、高橋(智)、吉本、鈴木、岩室、小松、岩永、村山、
    門脇、遠藤、高橋(徹)
読み手:岩室、岩永、吉本
書記 :高橋(徹)

本日は、p.359から開始です。

p.361
バックオフ(back off)の意味は?
 → 電子辞書では、人にしつこく言うことをやめる、後にさがる、手を引く、など
 「ロールバック」を使わないのに意味があるかもしれない。トランザクションと
 密接な用語だからかもしれない。バックオフは多分一般用語。

「テスト・アンド・セット」などの用語は何用語?
 → JSR-133 Cookbookに載っている。ヘネパタ本にもあるそうです。

Hyper Threading(HT)は、Pentium4の命令実行効率が悪く演算器が余っているので、
導入された。なお、CoreDuoは実行効率がいいのでHTが効きにくい。

ノイマン・ボトルネックとは?
 →CPU数を増やしても、メモリアクセスがボトルネックになり性能がでないこと。

ナイアガラ
 8コア:1コアで4スレッド、ファイングレイン(細挽)スレッド
 浮動小数点演算器が1コ(コアにつき?)なので、浮動小数点計算をするスレッド
 が複数あると効率悪い。次世代ナイアガラで改良される。

成功するまでリトライする方法はシステム破綻を起こすのでは?
 → 地震で皆電話すると呼が一気に増大しつながらくなってしまう

p.362 「ハードウェアがwhileループの暗黙の分岐先を正しく予測し」はCPUの分岐
予測のこと?
 → そう。そのほか投機的実行とかもある

アトミックな変数のライブラリJava以外は?
 → WindowsはAPIあるらしい
   InterlockedIncrement
   InterlockedCompareExchange
   InterlockedExchange
     :
 → UNIX系 なさそう? (宿題)

p.364
doubleは64bit?
 → JavaではYes

CPUが80bitで浮動小数点扱うときは? strict fpは?
 →IEEE754のルールに厳密にしたがうときはstrict fp
  演算性能は違うのでは?

 ※議事録執筆時の補足) strictfpのVMへの実装に関する首藤氏の論文
 http://www.shudo.net/java-grandprix99/strictfp/

.364中
文章意味分かりにくい。
 →アトミック変数同士は、たとえ中に同じ値を持っていたとしても、==、equals
 ともにfalesとなる。
 注意) Integer、Longと、AtomicInteger、AtomicLongとは違う

「不変項」原書では、invariant、「不変条件」と訳すことが多いのでは?

p.367の「スレッドローカルな操作が少ないと、」のスレッドローカルとは?
 → グラフ中のThreadLocalのことではない
   nextIntを呼び出すテストコードのドライバの処理の話であろう
   nextInt以外にスレッド間で干渉するようなコードがあると計測結果が読み取
  れないから?
  ThreadLocalのアクセスが遅いということはないか?

p.374 脚注7の文献
・Michael and Scott 1996 : 学会発表論文 URL有
 http://citeseer.ist.psu.edu/michael96simple.html
 このURLからPostScript、PDFでダウンロード可能
・Herlihy and Shavit 2006: 書籍"Multiprocessor Synchronization and
 Concurrent Data Structures"

p.372 List 15-7
while(true)
(1)  Node curTail = tail.get();
(2)  Node tailNext = curTail.next.get();
(3)  if (curTail == tail.get()) {

ここで、(1)と(3)が同じことをしているのは何故?
 → (1)、(2)で2つの値を取り出しているが、その2つが同じバージョンであるこ
 とを(3)で保証するため

p.376 脚注9 倍幅のCAS(CAS2またはCASX)の具体的なCPUと命令を調べる(宿題)

バックポートJSR-166でアトミック変数はどう実装されているか(宿題)

訳者あとがき
p.400 Brian Goetz氏のJavaジェネリクスの入門記事
 ※議事録執筆時の補足) 本書の著者Brian Goetz氏の出版一覧
 http://www.briangoetz.com/pubs.html
 ここからジェネリクス入門記事を抽出すると、以下でしょうか?
 "Introduction to generic types in JDK 5.0"
 http://www-128.ibm.com/developerworks/edu/j-dw-java-generics-i.html
 (残念ながらIBM developerWorks日本語訳は出ておりません)


[ 戻る ]