4 core x 4 で 16並列まで可能.(実際にはSMTを有効にすれば, 2 thread x 4 core x 4 となり,32となるが,その設定は採用せず)
. /home/isle2010/sparc/parvars.shとして環境変数をセットする. bash に読み込むのにはこのようにドット(.)を使う. (先に /home/isle2010/sparc/parvars.sh の内容を確かめてください.) なお,シェルは bash だと仮定しています. 必要なら,bash コマンドにより,bash シェルを起動してください.
xpu -2  などとする.
    使用するには ssh において X を転送する必要がある.(ssh -X)
  sched_setaffinityにより 
          スレッドをどのプロセッサ(コア)で実行すべきか指定可能であった.
          一方,計算サーバの OS は Solaris であり,
           processor_bind(P_LWPID, P_MYID, p, 0) 
          とすることで自スレッドを番号p のコアに割り当て可能.
          ただし,すべての番号が有効ではないので,
          p_online(p, P_STATUS) == P_ONLINE  と
          なるもののみを選んで自スレッドをコアに束縛する.例えば,
以下のようにすればよい.
      
#include <unistd.h>
#include <sys/processor.h>
#include <sys/types.h>
int systhr_bind_to_proc(int pe){
  processorid_t p;
  if(pe >= sysconf(_SC_NPROCESSORS_ONLN)) return -1;
  for(p = 0 ; p < 65536 ; p++)
    if(p_online(p, P_STATUS) == P_ONLINE && pe-- == 0 ) break;
  return processor_bind(P_LWPID, P_MYID, p, 0);
}
      ここで,sysconf(_SC_NPROCESSORS_ONLN) は
      利用可能なプロセッサ数(コア数)を返すが,上で述べたSMTの
      場合の32を返すため,この例のままでは processor_bind に渡す p が無効に
      なることがある.
       -O2 -mcpu=ultrasparc などで用いる.
      最適化オプション(-O2等)を指定しないといけない点などはLinuxと同様である.
      -Kparallel)や,
       OpenMP(-KOMP)のためのオプションがある.
       (注: 自動並列化したコードの性能は採点の対象としない.
           試すのは構わない)