LoginSignup
2
1

More than 5 years have passed since last update.

Power 8 on SoftLayer触ってみました。

Last updated at Posted at 2016-03-30

SoftLayer上に新しいランアップが加わりました。今までのインテルCPUに加えPower 8 CPUが選択できるようになりました。元インテルの私としては昔の競合製品なのでなんとなくわくわくしてしまいました。
power2.jpg
今回少しの時間ですが試せたのでブログを書きました。
ログイン画面ほとんどIntel Ubuntuと代りませんがPowerの文字が
power3.jpg

CPUの情報を見てみましょう。/proc/cpuinfo で
cpuinfo3.jpg

CPUの情報がずらっと出てきます。0~63で64個出てきました。今回使っているのは1ソケットのシステム、コア数は8です。SMT(Simultaneous Multithreading)は8なので全部で64個CPUがあるように見えるのですね。
https://ja.wikipedia.org/wiki/%E5%90%8C%E6%99%82%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B9%E3%83%AC%E3%83%83%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0

今度はlscpuでも見てみます。
lscpu3.jpg

Power 8 CPUは3次キャッシュまであるんですね。L1キャッシュは命令とデータが分かれている。ハーバードアーキテクチャーというのでしょうか?
https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%BC%E3%83%90%E3%83%BC%E3%83%89%E3%83%BB%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3

ちなみにマザーボードの情報も見れますね。これのようです。(Habanero)
http://www.tyan.com/solutions/tyan_openpower_system.html

さて早くも時間がなくなってしまったので何か計算を。手元にパイの計算をするCのプログラムがあったのでやってみました。

int main(int argc, char* argv[])
{
        int i;
    double start_time, stop_time;
    double x, pi, sum=0.0;

    step = 1./(double)num_steps;
    start_time = clock();

    for (i=0; i<num_steps; i++)
    {
        x = (i + .5)*step;
        sum = sum + 4.0/(1.+ x*x);
    }
    pi = sum*step;
    stop_time = clock();

    printf("The value of PI is %10.7f\n",pi);
    printf("The time to calculate PI was %lf seconds\n",((double)(stop_time - start_time)/CLOCKS_PER_SEC));

    return 0;
}

10億桁のパイの値を求める計算です。約10秒かかりました。
これだけではいいのかどうかわからないのでインテルCPUでもやってみました。ちょうど同じぐらいのシステムがすぐに使えるのがなかったので48 CPU (12コアx2 (HT) x 2(ソケット)と少し小さめでした。(メモリー容量は同じ)結果は約18秒。しかしCPUの数の比から見るとPower 8 CPUの性能の高さがわかりますね。ちなみに周波数はどちらも2GHz

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1