TOP 
記事検索(複数ワードSP区切り)
ティアのホームページ☆ミ

 
ティアのホームページ 月依桜へようこそ☆ミ
フルhttps化したので、リンクを張り直してくれると嬉しいです☆

(2024年8月8日更新) ATOM 1.0
女装千年王国 2017年9月29日発売
チャンネル 茉奈香ちゃんねる
 
カテゴリ 自己の紹介 りんく 落書き帳 レガリヤ プログラム みちゃいやん グラフィック RTChart個人用
 
テーマ 日記(825)
たわごと(260)
BlogPet(168)
PSO2(117)
ゲーム(55)
こみけ(45)
PSO2 NGS(35)
番組表(35)
なし(32)
うさこ日記(27)
ココロ日記(20)
Windows10(11)
CG(7)
たるたる(6)
記念日(5)
アニメ(4)
Ys?(4)
あに(2)
拍手返事(2)
激痛(1)
 
旧カテゴリ たわごと
(引っ越し中)
 
カレンダー
<< 2023年10月 >>
Sun Mon Tue Wed Thu Fri Sat
             
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
2023年8月 2023年3月
2023年7月 2023年2月
2023年6月 2023年1月
2023年5月 2022年12月
2023年4月 2022年11月
     
 
フォローする?

女装千年王国 2017年9月29日発売
【プリズム◇リコレクション!】情報ページ公開中!
【プリズム◇リコレクション!】情報ページ公開中!
『大図書館の羊飼い』は2013年1月25日発売予定です。
『大図書館の羊飼い』は2013年1月25日発売予定です。

『えれくと!』を応援しています!
「キミとボクとエデンの林檎」花鏡院琴音を応援中☆ 公式サイトへ
ALcot ハニカム 『アネイロ』 瑛菜応援中!
【カミカゼ☆エクスプローラー!】風花を応援中!
【カミカゼ☆エクスプローラー!】沙織を応援中!
アネカノ 秘密の彼女はお姉ちゃんいちゃらぶADV 応援中!
ゴスデリ 7月23日発売予定
『とっぱら ~ざしきわらしのはなし~』2008年9月26日発売予定!
 
no prev page 1/1ページ(1件) no next page
To Close..Threadの起動と終了 2023年10月06日17時40分
珍しく、プログラムの話しです。

あたしは、多コアPCのために、大量のスレッドを立ち上げて、処理が完了しだい次のデータを送り、すべてのスレッドが、順当に終わる。

そんなプログラムを作ることが多いです。

まぁ、大量のスレッドと言っても、CPUの最大スレッド数以上には立ち上げませんけれど、
例えばで言うなら?

100スレッドを超えるようなPCでも、8スレッド程度の個人向けPCでも、CPU使用率が100%近くなるようなプログラムを作ることが出来ます。
勿論100%にすることも可能ですが、色々とOSの方にも影響が出てくるので、99.9%くらいが良いですね。

簡単に言うと、最大スレッド数 -1 とか -2くらいの規模で作れば、100%行きます。

勿論、他のサービスに影響が出てはいけないので、その辺りは、設定で変更出来るようになっています。

サービスは、複数のPCから呼ばれ、タスクはどんどんと積み重なっていくので、
CPUの根本的な速度や、メモリの量、ストレージの量、速度、そう言った物を考慮しながら、作っていくわけですが?
使用するスレッドが64個有って、20のタスクを、実行する場合どうしたら良いでしょうか?

全部に均等にスレッドを割り当てる方法、古い方のスレッドを多めに実行する方法。
何も考えず、終わるのを待ってから次を実行する方法。
色々あります。

あたしが今行っているのは、すべてのタスクに均等にスレッドを割り振る方法です。

勿論割り切れなければ、古い方へ優先的に割り振ります。

64/20=3.2ですから、一つのタスクに3つか2つのスレッドになりますね?

マルチスレッドプログラムを組む上で、最低限注意しなければならないのは、スレッドの立ち上がりが以外と遅いことです。
スレッドを起動して、処理が完了したら終了して・・・それを永遠繰り返していると、スレッドの立ち上げと終了というオーバーヘッドは、タスク全体の処理を遅くします。

そこで、スレッドを立ち上げたまま、次のデータを送り込む方法というのもあります。
しかし、それはそれで、結果の保存、計算領域の初期化など、沢山の不要な処理が必要になり、結果的に不具合の温床になります。

ですので、手っ取り早く、1タスクのスレッドの最少数を設定しています。

まぁ、基本的には4か8か、その辺りです。
タスクの各データの、処理単位を小さくしすぎなければ、スレッドの起動と終了よりも、各スレッドの実行時間が長くなれば相対的に、オーバーヘッドが小さくなると言うことですね?

その当たり、タスクの種類によって、作るサービスの種類と言いましょうか?
それらによって、どの方法を選ぶかというのを決めたりします。

でもまぁ、データ毎にスレッドを起動した方が、GCも綺麗で早いと思うので、こっちを多用する傾向です。

スレッド処理をする時に、注意しなければならないのは、実処理をするスレッドと、スレッドにデータを割り振るスレッド、結果を保存したり、整理したりするスレッド。
PCを再起動した時などに、処理の中断や処理の再開をするための機能、色々と必要になります。

また、いつ新しいタスクが追加されるかも分からないので、
通信を常にリスニングしている必要もあります。

Windowsのサーバーには、クラスタリングの機能が元々あるのですが?
クラスタリング機能を有効的に使うには、DCクラスのサーバーと、複数台のサーバーが必要になります。
クラスタリングは、タスクをサーバー間で自動的に割り振ったり、結果を集約して、返してくれたり、いろいろな機能があるのですが?
まぁ、そもそも、サーバーの金額が高いこと、クラスタリングの機能を作るためには、専用のプログラムが必要なこと

そして何より、日本語でのまともな説明が何処にも無いこと(笑)

クラスタリングの機能を使うためだけに高価なサーバーとそのOSをそろえるくらいなら、自分で無理して頑張って、同等の機能をプログラムで作り上げた方が早いです。

昨今のPC事情としては、個人向けでもコアが64個くらいあってもおかしくない状況で、
ThreadRipperなんて256スレッドとか有りますしね?
Core Ultraでしたっけ?何でしたっけ? 新しく発表されたXeonも結構な数ありましたよね?

コアを遊ばせてないで、どんどん使っていきましょうよ?


閉じる
テーマ:たわごと URL:https://tsukiyori.sakura.ne.jp/index.cgi?ID=1654
 
no prev page 1/1ページ(1件) no next page
このホームページでは一部、“PULLTOP” 製品の画像素材を加工・引用しています。
これらの素材を他へ転載することを禁じます。
(C)GUST CO.,LTD.
Copyright © 2009 C&C Media Co.,Ltd. All Rights Reserved.
Copyright ©  WeMade Entertainment Co.,Ltd. All Rights Reserved
Copyright ©  INTIVSOFT. All Rights Reserved.
『PHANTASY STAR ONLINE 2』公式サイト
http://pso2.jp/
■PULLTOP Official Website■ やりこみRPGアトリエシリーズ公式ページへ!
モバイル向けのページはこのQRコードを利用ください。
■PULLTOP Official Website■
 
以前のバナーはこちら パメラ七変化はこちら