[夏の]Supercon2004予選[電脳甲子園]
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGSupercon2004!
予選課題が発表されたわけですが、我々も一プログラマーとして挑戦してみようではありませんか。というわけで、超高速アルゴリズムをじゃんじゃん投稿しよう、という趣旨のスレです。
東京工業大学スーパーコンピューターコンテスト
http://www.gsic.titech.ac.jp/Japanese/Publication/Supercon/index.html
予選課題の内容
http://www.gsic.titech.ac.jp/supercon/supercon2004/yosen-mondai.html
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG|
|
|
↓
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGというか,どうせ答えが知りたいだけなんだろうな.
0009デフォルトの名無しさん
NGNGいや、それでもヒントになるか。終わってからにするべきだな。
0010デフォルトの名無しさん
NGNGhttp://idm.s9.xrea.com/factorization/aks.html
0011デフォルトの名無しさん
NGNG何でそんなに速いのさ。
0012デフォルトの名無しさん
NGNGここにはアップしたりはしないが、63msで実行できた。
ってことはこれって完全にレポート審査になりそうな予感。
0013デフォルトの名無しさん
NGNGまさか本当に386で動かすわけでは・・・w
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGふざけるな、渡辺。
icpc やってろってか?
0016デフォルトの名無しさん
NGNG時間的にどのくらいの差が出たんだろう?
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGみんなそんなもんなのかな?
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNGエラトステネスのふるいでやってると死ぬよ?
発想の転換が必要。。
0022デフォルトの名無しさん
NGNG実装して提出 700Mで1秒くらいでしたけど・・・・
ただ単に素因数分解するのではなくて
途中で大分枝狩りが可能ですよ。
0023デフォルトの名無しさん
NGNGコンパイルエラーは即死だからな。
もちろんみんなvineにgccで試したんだよな。
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGその後、Supercon数表の作成に50msほどかかってクイックソートに1ms。
まあ、50〜60ms前後か。やっぱり、レポート審査になるかな?
0028デフォルトの名無しさん
NGNGここ見るとこれじゃ遅いな
素因数分解は結構高速化したつもりだったが…
>>27
クイックソートってことは素因数分解じゃないみたいだな
直接生成? 何使ったんだろ
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGクイックソートするより、最初から sort されたところに入れていくほうが速い気がするけど、どうなの?
オーダーは同じ感じだけど。
003321・31
NGNGうちはSuperCon数を作るたびにソートしてました。。
でもクイックソートが1msでできるのなら、
そっちのほうが早かったかもです・・・うちのやつよりは↓
てかnの値をもう少し大きくしないと一瞬で終わっちゃうんですけどww
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGでも全部をソートしなくとも素数の組み合わせからソート済みの順番に生成できそうな悪寒。
003628
NGNGなるほど・・
確かに範囲を絞れば1286^12も試行要らないか
うちは素因数分解で小さい方から素数で割っていって
p^(残り持つべき素数の数) > 現在までに素因数分解されたのの残り
になったら終了にしてた orz
003721・31・33
NGNGそれが意外と大変なんですよね〜>_<
素数2個の組み合わせだけでも、
2*2 2*3 3*3 2*5 2*7 3*5 3*7 2*11 5*5 2*13 3*13 ...
そもそも素数の出現に法則性がない(らしい)ので、
SuperCon数の出現にもこれといった法則性がなさそうなのです。。
003821・31・33
NGNG50ms切りましたよ☆
>>29さんと>>32さんを組み合わせた感じですけど、
要らない数字をはじきまくりました。。
たとえば2003って素数を2回かけたら、
残りが全て2でも出力する値を超えるので削除、とか…
0039デフォルトの名無しさん
NGNGSuperCon数を生成するときに、小さい数 -> 大きい数みたいな傾向があると、
少し効率が悪くなってる悪寒。
C++ なら std::set に突っ込んで終わりそう。
まぁ、SuperCon数の生成がボトルネック。
0040デフォルトの名無しさん
NGNGから、募集要項をクリックして、その後、本戦問題をクリックして見よう。
ttp://www.gsic.titech.ac.jp/supercon/supercon2004/honsen.html
びっくりした…。
0041デフォルトの名無しさん
NGNGって、8月2日後悔ってかw
0042デフォルトの名無しさん
NGNGてか41うまいけど上げんなヴォケ
0043予選通過者
NGNGちなみに、VC++6.0、Debugモード、Pentium4 2.8Ghz。
1ms普通に切ってる人いないかな?ちなみに素数テーブル作成はエラトステネス。
除算使うよ。発想の転換が大切。
0044デフォルトの名無しさん
NGNGそれにしても結果出てるのに今更な書き込みですね。
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG予選問題解答っていつUpされんの??
0047デフォルトの名無しさん
NGNG0048名無しさん@そうだ選挙に行こう
NGNGRSA暗号とだけ言っておこう。
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGカーマイケル数
フェルマーの小定理
フェルマーテスト
擬素数
くらいしか思いつかない。
他に調べて損のない単語を挙げよう。
0052デフォルトの名無しさん
NGNGってかそれより下さい・・・まじで>_<
005347
NGNG俺は関西からの出場だ。
本選で会おう!
0054デフォルトの名無しさん
NGNGランダムを利用した素数判定とか。
と、問題知らないけど予想してみるテスト。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNGメルセンヌツイスター。
メルセンヌツイスター。
乱数そのものと言うよりたぶん、乱数を使うアルゴリズムか出るんじゃないかと、
問題知らないけど予想してみるテスト。
005847
NGNG関西2校しかないから大体相手の見当付くよなww
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNGDeleteKey周りの設定とか、
keymapの読み込みとかでちょっと手間取ったが…。
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG過去出場したけどOKぽかった。
0064デフォルトの名無しさん
NGNG数年前の記憶を元にMPIについて少しだけ書いてみることにします。
MPIがTCP/IPと違うのは、サーバーとクライアントの振り分け処理と、
クライアントの数が決まっていることくらいだったという記憶があります。
#それ以前にTCP/IPを例えに用いて良いのかは謎ですが。
TCP/IPでは、サーバー側がbindしてクライアント側がconnectするのに対し、
MPIではプロセス(プロセス数はコマンドラインで指定)が立ち上がるだけです。
そこで、どうやってクライアント・サーバーの区別をするかというと、
MPI_Comm_rank() の戻り値(0から1刻みで増えていく)が、
プロセスによって違っているのを利用します。
ちなみに、MPI_Comm_rank() == 0 ならサーバー側処理を実行して、
MPI_Comm_rank() != 0 ならクライアント側処理を実行するのが定番らしいです。
#プロセス数は、MPI_Comm_size() で所得できます。
006564
NGNG全てのプロセスの出力内容はすべて同一のウィンドウに表示されることに
留意しながら、MPI_Send()&MPI_Recv() を繰り返し書いていくだけです。
(各プロセスの処理時間)>>(プロセス間通信の時間)のようにプログラムを組めば、
ほかの関数群(MPI_Barrier,MPI_Bcast,etc)を用いなくても、それほど実行時間に
影響しないと思います。
#それよりも、使う関数が多すぎて混乱して失敗、という悪循環の方が心配です。
ただし、MPI_Send()&MPI_Recv() は、処理が終了するまで制御が戻らない
(マルチスレッドでは無い)ということに注意してください。メッセージの宛先や、
サイズ、タグが一つでも違うと、動作不良(たとえばフリーズしたり)になったと思います。
プロセス1 MPI_Send(宛先:プロセス2 メッセージタグ:0x0001)
プロセス2 MPI_Recv(宛先:プロセス1 メッセージタグ:0x0002)
↑この処理(タグが違う)が同時に起こるのは避けるべきです。
それと、構造体を送る場合は、MPI_CHAR + sizeof(struct HOGE) で送れます。
長文&不正確な内容でスマソ。本選の方がんばってくださいませ!
#で、私は東工大目指して頑張っている訳だがorz
0066デフォルトの名無しさん
NGNG本の持ち込みとか、自作ライブラリの持ち込みって可能なのかな?
(予選の段階で作った、素数の個数の近似求める関数等、持ち込めないともったいない)
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG>>65
> 全てのプロセスの出力内容はすべて同一のウィンドウに表示される
今回のルールがどうなるか分からないけど,rank!=0なプロセスからデータを出力するのは
禁止されているかもしれない.注意してください.
(自分の出場した時,そのせいで失格になったチームが居たような...)
rank==0プロセスは他のプロセスの管理だけをやって計算に参加させないのもありだと
思うな.それをやってもどうせ計算速度は1/64しか落ちないんだし.
0069デフォルトの名無しさん
NGNG2001年の話なので古いかもしれないけど。
本はおっけー。
というか、大学にいてもいいのはお昼だけだから宿では何をやってもいいよ。
大学に自分のノートPCを持ち込んでプログラム書いたりしてる人もいたし、
多分sshでログインしてスパコンを使うこともできるはず。
.emacsとかあんまり気にしなくていいんじゃないかなと。
>>47あたり
みんなでソースコード貼らない?長さで投稿制限に引っかかるかな、、、
俺は2.8ms程度。環境はPentiumM 1.3GHz、RedHatLinux7.3上で実行。
コンパイラはgcc2.96でオプションが-O3。
0070デフォルトの名無しさん
NGNG気をつけます。。
>>69
本線終わったらどっかに張ろう!一応メンバーに確認とるけど多分大丈夫だ
2.8msか・・・早いな>_<;;
あと、しょうもない質問させてください・・・
MPI_SendとMPI_Recvは、一方がそこまでたどり着いていない場合は
もう一方は処理をとめて待っているのですか??
recvの方は待ってるんだろうけどsendの方は・・・M(_ _)M
0071デフォルトの名無しさん
NGNGMPI_SendとMPI_Recvは待つよ。Sendも、受け取ってくれるまで待つ。
MPI_IsendとMPI_Irecvは待たないけど、普通は使わないよね。
んでSendとRecvはブロッキング通信だから、適当なことやってるとデッドロックします。
命令を呼ぶ順番にちょっとだけ気をつけましょうね、と。
まぁC言語に慣れてるならばかなり面白い大会のはず。楽しんできてね。予選通過おめ!
0072デフォルトの名無しさん
NGNGの話で思い出したんだが,本選に出る人たちに一つ言いたいことが.
-O3はやめておいたほうがいい.コードによっちゃ最適化オプションつけないのとは
スピードが何倍も変わる.
本選の評価では最適化オプションはつけないでコンパイルするからね.
というのは,自分のチームは本選中ずっと-O3コンパイルしてて,コンテスト終了間際に
それに気づいたときにはもう後の祭りだったという苦い思い出があって.
終了3時間前までは優勝を確信してますたorz
同じ間違いはしないでくれ…
0073デフォルトの名無しさん
NGNGmpp(東工大のorigin2000)のCコンパイラのデフォルト最適化レベルは-O0(最適化オフ)だね。
ttp://www.gsic.titech.ac.jp/Japanese/Service/R_System/Document/Tutorial/SGI/origin_advanced.pdf
-O3だと計算順序の入れ替えとか変更するから精度が落ちることあるし、並列プロセスからのデータの取得順序とか
計算順序も変わってくるんじゃなかったっけ?
普通に考えたらコンテストの審査で結果が変わるかもしれない-O3オプションでコンパイルするわけがありません。
予選もだけど、特に指定がなければオプションなしでコンパイルしていると思うべきだと思う。
デフォルトでコンパイルしている組との結果を比べてほくそえんでたとしたら・・・ご愁傷様でした。
持ち込みその他の条件については>>69の言うとおりだと思う。
0074デフォルトの名無しさん
NGNGしかも同チームの奴が4分の1の時間でやりやがった・・・
んで今日は昼にPC煙出しそうな熱で停止するし・・・
誰かこんな俺にエールを(_no orz
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGどーでもいいのだが、まだOnyx2に接続できるなぁ。もう7/30過ぎてるんだが…。
馬鹿正直に31日になった段階で切断したヤシが損しないか?
0078デフォルトの名無しさん
NGNGみんなに会えるのを楽しみにしとくぞ!!
0079デフォルトの名無しさん
NGNG最高の大会だったよw
1年間sage進行で保守する事を誓う!!
0080デフォルトの名無しさん
NGNG……本気かい。
ま、いいや。
ともかく、本当にいい大会だったよ。
来年も出たいなあ……
0081demeking
NGNG俺は関西人で一番喋って茶髪で(ry
家のパソコンのキーボードが使いにくくなってしまったw
俺は来年忙しいから出れへんけど、メールとかそんなんでみんな仲良ぅしよな〜☆
漏れも>>79に続いて誓う☆
ハイテンションな俺のノリについてきて喋ってくれたみんな、ありがとう〜☆
0082デフォルトの名無しさん
NGNG4位おめ。
俺はしばらくドラマーに戻りますw
0084デフォルトの名無しさん
NGNGほんとマジでいい大会だったのに
最終日にダウンして家で寝てましたょ・・
みんなのアルゴリズムとか聞きたかったなぁ。
>>83
俺はドラマーじゃなくてギタリストに戻る予定です(笑
008684改めrank==0
NGNGHP作成いいねぇ。どうせ作るなら本家のページより
詳しくて見やすいのとかどうよ?(笑
このページ見てる人でHTML得意な人とかいるかなぁ。
0087デフォルトの名無しさん
NGNG俺はSPAMと時計をもらった人ですw
0088demeking
NGNGHP作ったら長続きしそうやなぁ〜
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG書いちゃおうぜ。
一位は麻布のnemuiチーム。
二位は中国のchinaチーム。
三位は浅野のnomeanチーム。
……中国はともかく、「眠い」と「無意味」が上位に入るなんて、誰が予想しただろう。
あと、四位は兵庫県立長田高校のnagaterチーム。
国内上位三チーム全てが頭文字「n」であるという、異例の事態。
0092デフォルトの名無しさん
NGNG来年はn付けとこーww
SPAMキター(ホスイ
みんなコードどれくらいかいた?
うちデバック情報入れて12page(長)
0093デフォルトの名無しさん
NGNG緑色のカードは速やかに返却すること。
(FAXも可)
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNGもったいないことしたなぁw
まぁその分いいギタリストになってくれw
>>90
なんか停電してるらしいぞ学校がw
0096デフォルトの名無しさん
NGNG本日5時に、電源を入れました(@サカモト)
0098demeking
NGNG0099デフォルトの名無しさん
NGNG3チーム以上の同意があればやろうとおもうのだが・・
0100nomean唯一の高三生 ◆vG5F1vSPks
NGNGとりあえず、うちのチームはOKです。
ワードバスケット、横浜ロフトにも東急ハンズにも売ってないと思ったら
http://homepage.mac.com/jaga_online/wb/shop_list.html
有隣堂&紀伊国屋で売ってるのか……
これから買いに行こ。
■ このスレッドは過去ログ倉庫に格納されています