パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C++)」記事へのコメント

  • cout << "num of solution: " << sum << endl;

    出力してるの、解の数だけじゃ?

    元記事に

    『魔方陣の世界』ではこの問題のためのコードも紹介されていますが、並列化されていないこともあって、解の数え上げで約5000秒(確認済み)、解の列挙で約3日(未確認)と、あまりふるいません

    と、解の数え上げ(元記事の『10分で解けた』と主張する「C++のコード」で実際にやっていること)と、高校生がスパコンで解いた2時間36分のコード(解の列挙)では、
    同じコードでは50倍の時間差があることを元記事自体が示している。

    (たぶん、出力をハード(RAMもしくはSDD/HDD)上に書き出すという、アルゴリズムとは無関係なところのボトルネックが原因だろうが)

    • なるほど、そういう違いがそもそもあったのですね。ならばぜひスパコンに掛けた自分のプログラムを数え上げに書き換えて、どのくらいになるかやって欲しいものです。批評をちゃんと受け止めて、さらに前に進む姿勢を身に着けることこそ(マスメディアに取り上げられることなんかよりずっと)大事なことだと思います(と強く思う今日この頃)。
      http://sci.tea-nifty.com/blog/2014/02/t2k-tsukuba5x5-.html [tea-nifty.com]
      ここにも触発された方が。

      親コメント
    • by Anonymous Coward
      ループの一番内側に・・・

      int t = omp_get_thread_num();
      ++counts[t];
      *files[t] << (char)x1 << (char)x2 << (char)x3 << (char)x4 << (char)x5 << (char)x6 << (char)x7 << (char)x8 << (char)x9 << (char)x10 << (char)x11 << (char)x12 << (char)x13 << (char)x14 << (char)x15 << (char)x16 << (char)x17 << (char)x18 << (char)x19 << (char)x20 << (char)x21 << (char)x22 << (char)x23 <

物事のやり方は一つではない -- Perlな人

処理中...