[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 12629] 議事録「 Java 並列処理プログラミング 」を読む会(第 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<E> curTail = tail.get();
(2)    Node<E> 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日本語訳は出ておりません)


--
TAKAHASHI,Toru
torutk@xxxxxxxxxxxx