Scalable multithreaded programs in Java
新城@筑波大学情報です。こんにちは。
Java でマルチスレッドのプログラムを書いて共有メモリのマルチ
プロセッサで動かそうとしています。VM で使える CPU の数を変え
ながら台数効果を調べたいのですが、なかなかうまくいきません。
何かノウハウはないでしょうか。
試したのは、pthread_setconcurrency() (thr_setconcurrency())
を、JNI で呼び出してみたことです。一応、設定はうまくいきます。
pthread_getconcurrency() してみると、ちゃんと設定した通りに
なっています。しかし、実際には台数効果は図れません。
負荷としては、単にループをぐるぐる回るようなものを使っています。
環境は、こんな感じです。
Hardware: Sun Enterprise E4500, UltraSPARC II 366 MHz x 6
OS: SunOS 5.6 (Solaris 6)
Java: java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
次のページの -XX:+UseBoundThreads は試してみました。
pthread_self() するとたしかに Java のスレッドと pthread は対
応しているように見えます。
http://java.sun.com/docs/hotspot/threads/threads.html
続きは、Followup-To: fj.comp.lang.java ということで、よろし
くお願いします。
HotSpot 止めればいいのかなあ。どうしたら止まるんでしたっけ?
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735