Path: ccsf.homeunix.org!ccsf.homeunix.org!news1.wakwak.com!nf1.xephion.ne.jp!onion.ish.org!onodera-news!newsfeed.media.kyoto-u.ac.jp!oix.u-ryukyu.ac.jp!u-ryukyu.ac.jp!ie.u-ryukyu.ac.jp!gama.is.tsukuba.ac.jp!yas From: yas@is.tsukuba.ac.jp (Yasushi Shinjo) Newsgroups: fj.comp.lang.java,fj.comp.parallel,fj.sys.sun Subject: Scalable multithreaded programs in Java Followup-To: fj.comp.lang.java Date: 08 Jan 2004 18:38:49 GMT Organization: Institute of Information Sciences and Electronics, University of Tsukuba Lines: 35 Message-ID: NNTP-Posting-Host: kirk.hlla.is.tsukuba.ac.jp X-Trace: gama.is.tsukuba.ac.jp 1073587082 9302 130.158.85.129 (8 Jan 2004 18:38:02 GMT) X-Complaints-To: usenet@gama.is.tsukuba.ac.jp NNTP-Posting-Date: 8 Jan 2004 18:38:02 GMT Xref: ccsf.homeunix.org fj.comp.lang.java:112 fj.comp.parallel:41 fj.sys.sun:106 新城@筑波大学情報です。こんにちは。 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 止めればいいのかなあ。どうしたら止まるんでしたっけ? \\ 新城 靖 (しんじょう やすし) \\ \\ 筑波大学 電子・情報       \\