おふとんの中から寝言をつぶやく

ビットコインなどの暗号(仮想)通貨関連の話題を中心に雑多に書きます。

Intel Xeon Phi 5110pを動かす

ようやくcentosで動かすための準備が出来たような感じなので備忘録として書いておきます

 

箇条書きで乱雑なのはご容赦ください

 

ハード: 

Xeon E5-2650 v4

M/B supermicro X10SRA-F

MEM ECC DDR4-2400(16GB x4)

HDD WD RED 3GB

 

インテル® Xeon Phi™ コプロセッサー セットアップ手順|テックウインド株式会社

ここを参考に進めていたが、インストール環境を整える必要があった

 

カーネルバージョンを合わせるだけですんなりと進めたので、そのカーネルバージョンの合わせ方がこのページのポイント


centOS 8.5のイメージ取得
インストール

yum update

これをやると、カーネルもアップデートされるので、

https://note.com/muroy/n/ne9184c3c7359
https://www.hpe.com/jp/ja/servers/linux/matrix/driver-26-rhel8.html

上記を参考に、

yum install kernel-4.18.0-348.2.1.el8_5
yum downgrade redhat-release
shutdown -r now

 

mpss-3.8.6.tarをどこかで調達

mpss-3.8.6を展開して、

cd mpss-3.8.6
sudo yum install *.rpm

 

https://jjkeijser.github.io/mpss/xeon-phi-mpss-centos8.html

MPSS 3.8.6 on CentOS 8.5
にある、mpss-modules-*-4.18.0-248.2.1.el8_5*.rpm
をダウンロード

yum install mpss-modules-*-4.18.0-248.2.1.el8_5*.rpm

これでインストールマニュアルのStep3(C)のmodprobeが出来るようになる

…はず

 

windowsの場合は、mpss-3.8.6.zipを展開してインストールしたらすぐ動きそうだったんですけどねぇ…

 

 

debianにUSB経由でSSDをつなぐ

未フォーマットのSSDをUSB経由で接続する手順

 

手順:

dmesgで接続したデバイスのデバイス名を調べる

fdiskでパーティションを作成(領域の確保)

fileでファイルシステムの情報を表示

mkfsでフォーマット(領域の初期化)

(必要があれば: マウントポイントの作成)

mountでマウント

(必要があれば: fstabの編集。あるいはautofsを使う)

 

以下,詳細

 

例:

# dmesg |grep sd

 

debian12(bookworm)の例

debianでusbでSSDをつないだときのdmesgのスクリーンショット

 

# fdisk /dev/sd?

(?の中には、dmesgで調べた該当するデバイス名をいれる)

 

例:

# fdisk /dev/sdc

 

* fdiskは変更を確定すると内容が消えるので、別の領域を誤っていじらないように注意

 

fdiskの使い方

【 fdisk 】コマンド――パーティションを作成、削除する:Linux基本コマンドTips(187) - @IT

 

 

# file -s /dev/sd?

# mkfs -t ext4 /dev/sd??

# mount /dev/sd?? /mnt

 

 

例:

# file -s /dev/sdc

# mkfs -t ext4 /dev/sdc1

# mount /dev/sdc1 /mnt

 

 

アタッチ済みボリュームのフォーマットとマウントの、Linux で EBS ボリュームをフォーマットしてマウントするにはの、2から

Linux で Amazon EBS ボリュームを使用できるようにする - Amazon Elastic Compute Cloud

 

autofsの使い方

autofsを用いてHDD/SSD/USBメモリを起動時に自動マウントする方法(Debian)

 

 

 

 

Go言語のflagの初期化時の注意

ハマったことを備忘録として残しておきます

  langCode := map[string]string {
    "video": *flag.String("v", "J", "string flag"),
    "subtitle": *flag.String("s", "J", "string flag"),
  }

  flag.Parse()

  fmt.Println(langCode)

$ sample -v E

とすると、オプションで指定した"E"が入っておらず、しばらく悩んでから元のコードを見直したら、

      i = flag.Int("int", 0, "int flag")
    fmt.Println(*i)

とあったのを見て、 flag.Parseをする前に、flag.Stringを使って、デフォルト値を入れてそのポインタを変数に入れておき、flag.Parse()するときに値を変更して使うものだということを理解した