中年プログラマーの息抜き

ブログをはじめました。気の向くままにプログラム関連ネタをメモしていきます。

PCが勝手に再起動するときのチェック

Windowsが勝手に再起動する症状に悩まされること3日・・ようやく解決したのでそのメモです。

ソフトが原因ではないしハード異常もなさそう…という状態で、なかなか原因がわからなかったのですが、ようやく解決しました。

 

勝手に再起動というキーワードで調べると、Windowsアップデートやウイルスなど引っかかるのですが、どれも今回のケースとは違う状態です。

 

発生しても大体が深夜近くに再起動されているので、気が付けなかったのですが、3日目の夕方に目の前で突然に再発したんです。

 

何やら、カチッカチカチッ て音とともに再起動していて、なんだろうと思ったら、

UPSの出力口に差し込み方向変える目的で余ってた雷サージ防止タップつけてたらUPS誤作動(瞬断)してました。こういうこともあるのですね。

 

JavascriptでBooleanのビット演算(OR演算)ぽい機能?

はじめに

新規プログラム作成の時は使わないかな、でもプログラム改修だと誰かが書いた既存処理を書き換えず、動きに変化をつけられるので、よく使いますね、この記述。ということで

では早速

const a = false;
const b = true;

let c = false;
c ||= (a || false);
console.log(c); //-> False

let d = false;
d ||= (b || false);
console.log(d); //-> True

論理和代入演算というらしい

パイプ記号を一つ書き忘れる「|=」 と演算結果(ビット演算結果)は数値になるので注意ですかね。演算結果を分岐条件などで使うケースだと大体は想定通り動くので気付きにくい・・

論理和代入 (||=) - JavaScript | MDN

※ビット演算ではないそうです
(評価演算でよいのかな??、Trueになれば以降は計算しないという理解でよい?)
・・ということで最後に下記説明をリンク先より抜粋
なお、この動作は、数学的な代入演算子やビット代入演算子とは異なることに注意してください。

10年前のPCをSUPERMICRO-X9DRDマザーで統合

はじめに

前回の構成変更で余った(捨てるか迷った)パーツ集めて、追加で2CPU用マザーボード、CPU(XEON)を2つ、NARROW対応CPUクーラーを2つ、メモリ8GBを8枚、GPUGeForce-GTX4060)を1つを追加購入して、生成AIを処理可能は仮想PCのホスト機を目指しました。チップセットは少し古めのIntel-C602J、CPUは楽天で購入したE5-2650v2を2`つ、そのあと組み立て中にメモリ4枚追加購入したので、結局GIGASTONE1600DDR3を12枚ほど購入しました。(手持ちのCorsair Dominatorは高さがありすぎてCPUファンが取付できないなどの原因で…使うのをやめたから、お手頃なもので揃えて補うことにした)(※正式サポート品ではないし、当然ながら温度センサー内蔵していないのでIPMI上でもDIMM温度は表示されない(Not-Present)…)、電源はEnermax-EMT750EWT に換装予定ですが、とりあえず、手元にあるマルチレーン500Wで動作確認するところまでをまとめようと思います。

 

※当初は、GIGASTONEメモリ(8枚)とCorsairメモリ(8枚)を混在させて16枚使う予定だったけど、この組み合わせ、スロットを変えたりしたけど、うまくいかなかった。

 

利用用途

買ってきたOSを動かして、開発環境など整備したいと思います。また、GPUGeForce-4060)は仮想端末に直結して、そこでStableDiffusionなど動かしつつ、生成AIを活用したYoutubeチャンネル解説などチャレンジしたいところです。

遭遇したトラブル

マザー規格がE-ATXで、ケース規格がATXということで、まあ普通にはインストールできません。今回はATXケースにねじ穴を2つ追加し、台座ねじを2mm程度かさ上げして設置することでうまく組み込めました。

それでも、メモリ相性とか、BIOS設定変えないとBIOSが起動しないなど、最近のマザーでは遭遇しないようなことも含めていろいろあり、それなりの面白みがありました。ハード初期化エラー(主には「B9」メモリエラー)でBIOS起動までたどり着くのに大変でしたがなんとかなった…気がする。

まだ解決していないところで、購入したRAMの1枚が動作不良で、今回使ったマザーだとNON-ECCを使うときは4枚単位で揃えないと起動ROMチェックではじかれてしまったので、CPU1がメモリ64GB(8枚x8GB)、CPU2がメモリ32GB(4枚x8GB)で動かすところまで完成させていて、あとはメモリ交換品の手続きを暇ができたら進める予定です。(連絡まではできているので、あとはメーカーに着払いで送るだけ)、ちなみにクアッドチャンネル設定だと動かなかったので、BIOSからデュアルチャンネル設定変更(Channel Interleavingを2ch、Rank Interleavingもとりあえず同じにしておきましたl)しないと起動しなかったですが、おそらくメーカー公式で推奨するEccメモリ(温度センサー付き)を使うほうが圧倒的に楽に進むのでしょう。とは思いました。が、今回は違うので、BIOS設定から、Ecc関連(ScrubとかRAPLとか)なども無効にしといた。ついでに。

あとは、上の写真を見てもらうと、CPUファンが違う向き・方向で設置しているのですが、これも空冷で冷やしきるための工夫だったりします。(ただしCPU1よりCPU2が3~5度ほど高い温度になってしまう。まあアイドル時で40度、通常時で50度、負荷かけても70度は越えなかったのでGoodだと思う)

消費電力想定

最大消費電力目安:450W ※作業時目安:240W、アイドル時目安:120W

CPU:190W(2x95W)(Boost無効)、RAM:80W(16枚)、FAN:20W(9個)、SSD:20W(4個)、HDD:25W(1個)、GPU:115W(1個)

購入したPCパーツ(約150,000円)

また、メモリなど届いてから次の記事で紹介します。

紹介したいこと

E-ATXマザーは、値段も高いけど品質も高い(VGAグラボ、マルチLAN、IPMI、など)と思います。また、ITエンジニアとしてSUPERMICRO(AWS基板ボード??)などサーバー用マザーを組んで想定通りに動かしたという経験も積めますね。 そして、少しの工夫でATXケースに収めることも可能でして、つまりATX電源を使うことができる(EPS電源は汎用性がなさそう)、もろもろ、また次の記事で! あと、このマザーだとNIC1とNIC2 のリンクアクセス信号を拾う場所があるので、これに流行りの? LED連動を搭載してみようかな・・ 気が向けば。 ないけど、もしもネット経由から予期しないアクセスをされたときに、激しく光って気が付けるかもしれませんしね。