こんにちは。 OHPなんて小学校4年の時以来使っていないので、全然ですが… ・メガネ率の高さは何故  コンタクトは邪道ですか? まぁいいんですけどね。 今回は参加できただけで私は本望です。 というか、まぁ、世の中おかしな人たちがまだまだいっぱい居るんだなぁとか。 自分なんてこの中じゃヒヨコ…についてる虫程度ですよ… 理系なんですが、物理も化学も成績は最悪でして。 …成績後ろから10人あたりのところをうろうろしてます。情けないですが。 自分はこの中で一番頭悪いです。間違いなく。 いつもはVBやperlしかやってないので、こういうアルゴリズム系は苦手です。 ただ、並列化の部分で出てきた、BroadcastとかはDirectPlayでネットワーク系のゲーム作ったことがあるので、わりと理解しやすかったです。 Unix系のOSは、いつもはFreeBSDをサーバーに使っているので、操作はだいたい慣れてました。 ただ、皆が言うようにHappyHackingKeyboardが使いにくかったです。 私のプログラムは元からそのままです。アルゴリズムの改変はなくて。 他のチームが速攻思いついてる、処理が半分で済むという改変は最後3時間あたりで思いつきました。 ごめんなさいやっぱりバカです、私は。 細かい高速化、というか、セコい高速化しかできませんでした。 calc_gravityとかを展開したりしただけです。 初めのアルゴリズムが一番速い物だという、今思えばかなり無謀な仮定を立ててしまったので、 自分は細かい部分でどう弄ったら高速化できるか、ということを中心に考えてました。 アルゴリズムに関する説明は何もすることがありません。なので、「無し」です。 >>OHP換え …とりあえず書いてみたんですけど。 細かい部分というのが ていうかうちも小手先なんで、これが敗因に… ・プロセス間通信がかなりネックなのは初めから分かってた  非同期なのか同期なのかいまいちわからなかった ・関数呼び出しが遅いことも。  calc_gravityを展開したらやはり速くなったので、調子に乗ってround関数を  展開したら逆に遅くなってしまいました。キャッシュの問題でしょうか。 ・ループを逆さまにしてみたり。 ・仕方ないので、round関数そのものを改良しようとしたが、実際に呼び出されるのは1億飛んで400万回のうち、わずか9万回。0.08%  ココを改良してもあまり意味がないというコトが判明したので、放置しました。    でも、後で実際計ってみたところ、floor関数の方がceil関数より速いので、とりあえずそのように実装しましたが。  セコイです。 ・100万回の乗算が2.184秒に対して、加算は2.501秒。  意外な結果。 ・sqrtを保存しておいて再利用したら遅くなった ・弄られる数字は加速度だけ。→単純に並列化しても問題はない 並列化した。数字も合った。よかった。 …と思いきや。 problem2になってから数字が合わなくなった。 というか、シリアル版も合わなくなった。どうしよう。 ・veryfyが初めの物では完全にあってたのに。 相当悩みました。時間にして約3時間ぐらい。 原因判明。 y-y しないといけないところを、x-yにしていた。ど阿呆。 ・途中で数字の丸め込みが入って一気に劇遅になったので、ある程度必要なときだけ丸めるようにした ----------------------------------------------------------------------- ・途中で自分鯖が落ちたりして焦った ・#include "CON" ・四元数にうっちゃんが燃えたりしてるのを見て、あぁ、俺は居ちゃいけない世界なんだと。