下記の連絡先へご連絡ください. チームごとに,利用計算機をgpuc01もしくはgpuc02に割り当てておりますが, もう一台のほうでも同じトラブルがあるかご確認いただければと 思います.
片方だけトラブルがある場合は,下記連絡先へ ご連絡いただいた上で,もう一台の計算機で作業して いただいて結構です. その場合,時間のロスを少なくするために,委員会からの返事を待たなくとも 構いません.
それぞれの参加資格を満たせば,できます. その場合は,それぞれの部門用のフォーマットを 使って,それぞれメールで申し込んでください.
コンテスト用マシン一台は,GPU(Tesla C1060)を2つ備えています. 一台が持つGPUであれば,1GPUを用いても2GPUを用いても構いません.
コンテスト用マシンの詳細については,申し込みチーム(基本的に代表者)に メールでお知らせしておりますが,万一連絡がない場合はお知らせください.
pthreadを各GPUのために立ち上げ,各スレッドが cudaSetDevice()を呼ぶことにより それぞれのGPUを使うことができます. 引数としてあたえるデバイス番号は,それぞれ0と1であることを 前提として結構です.
その場合でも,tk_init, tk_answer, tk_finalizeに ついては,各APIについて,1スレッドのみが1回づつ呼ぶ必要があります. たとえば複数スレッドがそれぞれtk_initを呼ぶことは許されません.
なおコンテスト用計算機にはgccから利用可能なOpenMPもインストールされています. OpenMPに関する質問はできる範囲で受付ますし,動作する ことを期待しておりますが,委員会として 必ずしも動作を保証するものではありません.
上記以外の方法については,別途ご質問ください.
規定課題のルールでは,マニュアルに記述の通り「サンプルプログラムと数学的に 同等なアルゴリズムであればOK」です.
ご質問のようにXとYを入れ替え「Y方向の補間4回,X方向の補間1回」の方式は, サンプルプログラムと数学的に同等ですので,OKです.
ちなみに,上記の方式は2つとも,「補間に用いる16点を通る二次元の三次多項式を 求め,その多項式に補間点座標を代入する」という方式と数学的に同値です. ただ,一般的には二次元三次多項式を求めるのは性能的に損と考えられます.
はい,ルールを守っている限り,実行しても良いです.
ただしcudaMallocについては,問題サイズをユーザプログラムが 知ることができるのは,tk_init呼び出し後であることにご注意 ください.
tk_answerを呼び出したときの表示の中に, 「tk_answer: Speed is 464.500 x 10^6 updates per second」 のような行があります. このSpeedは,「1秒あたりに更新した格子点の数」 を表示しています.
問題の領域サイズをnx, ny, 計算するステップ数をntとすると, 合計での更新格子点数は(nx-4)*(ny-4)*ntとなります (4を引いているのは境界領域の分). この値を,計算時間(CLOCKで示される)で割ったものが, Speedとなります.
自由課題部門に参加する各チームが提出できるレポートの数は,以下の通り とします.
質問やバグ情報は gpu2010@matsulab.is.titech.ac.jp までお願いします.