前スレ
C++相談室 part160
https://mevius.5ch.net/test/read.cgi/tech/1649979572/
C++相談室 part161
■ このスレッドは過去ログ倉庫に格納されています
2022/05/21(土) 21:23:29.59ID:kYXfaM+5
106デフォルトの名無しさん
2022/06/05(日) 05:03:18.77ID:O5HYGw/G >>95
c++標準の勉強をしていれば単語としてboostを聞いたことあるだろう。
知らないのなら大した勉強はしていないだろうから、せいぜい業務で通り一辺触ったことがあるくらいじゃないかね。
どこまでのスキル求めているかによるけど、業務内容に近い課題を与えてテストしてみたらいいんじゃない?
業務でc++を使わないなら、c++スキルに金を払うわけじゃないから気にすんな。どうせ募集要項にc++とか書いてないんだろ。
c++標準の勉強をしていれば単語としてboostを聞いたことあるだろう。
知らないのなら大した勉強はしていないだろうから、せいぜい業務で通り一辺触ったことがあるくらいじゃないかね。
どこまでのスキル求めているかによるけど、業務内容に近い課題を与えてテストしてみたらいいんじゃない?
業務でc++を使わないなら、c++スキルに金を払うわけじゃないから気にすんな。どうせ募集要項にc++とか書いてないんだろ。
107デフォルトの名無しさん
2022/06/05(日) 06:28:02.59ID:kEvpwCAH 自分の知ってる世界がすべてだと思ってる人間の方が危険。
C++が使われる範囲が広すぎるから、言語の経験有無よりもどの分野で開発してたのかを聞くべき。
ガラケー時代のカーネルドライバ書いてたり、携帯キャリア向け機器の組み込みやってた時はboostどころかstlすら使ってなかった。
というか使えなかった。
一方でスマホゲーのバックエンドを書いてた時はboostまみれだった。
C++が使われる範囲が広すぎるから、言語の経験有無よりもどの分野で開発してたのかを聞くべき。
ガラケー時代のカーネルドライバ書いてたり、携帯キャリア向け機器の組み込みやってた時はboostどころかstlすら使ってなかった。
というか使えなかった。
一方でスマホゲーのバックエンドを書いてた時はboostまみれだった。
108デフォルトの名無しさん
2022/06/05(日) 07:05:01.15ID:xi1K2Yw5 任意精度ってGMP使いませんか?
109デフォルトの名無しさん
2022/06/05(日) 08:31:22.07ID:sROqatdZ boost知らない人は自分が使ってる環境がC++11/14/17/20なのかも知らないとかありそう
大昔のC++文法しか知らない人とかいるし
面接ではこれも聞いてほしい
大昔のC++文法しか知らない人とかいるし
面接ではこれも聞いてほしい
110デフォルトの名無しさん
2022/06/05(日) 09:22:33.51ID:Zl7Pb69A 昔はboostでも使わんと正規表現扱えなかったでしょ(ヽ´ω`)
今の子は知らんのかな?
今の子は知らんのかな?
111デフォルトの名無しさん
2022/06/05(日) 10:41:52.09ID:GvBqEMar edはC++,boostで書かれていた!?
112デフォルトの名無しさん
2022/06/05(日) 10:57:35.83ID:TqTpE262 今や正規表現ライブラリはpcre2使っておくのが最適解でしょ
boostもre2も速度遅すぎ
最速軽量がre2の長所だったのは昔の話
boostもre2も速度遅すぎ
最速軽量がre2の長所だったのは昔の話
113はちみつ餃子 ◆8X2XSCHEME
2022/06/05(日) 11:09:32.30ID:XG05O5RB Boost 内のライブラリは組み合わせやすかったりもするだろうし、単独で性能が良いというだけが指標ではないだろう。
もちろん性能が良いに越したことは無いが、数倍程度の違いなら全体としては問題にならないことも多い。
もちろん性能が良いに越したことは無いが、数倍程度の違いなら全体としては問題にならないことも多い。
114デフォルトの名無しさん
2022/06/05(日) 11:33:39.66ID:TqTpE262 STLでregexクラステンプレートが追加されたのだから各正規表現ライブラリの供給元がstd::regexに準拠したラッパークラスを提供してくれるのかと思いきや、ほったらかしだしなあ
115デフォルトの名無しさん
2022/06/05(日) 13:02:35.05ID:u0j22vIZ おまいの募集要項にboost使用するって描いてないならおまいが可笑しい
boost以外の部分でC++の知識や使えるかどうかを確認するべき
boost以外の部分でC++の知識や使えるかどうかを確認するべき
116デフォルトの名無しさん
2022/06/05(日) 13:05:40.20ID:u0j22vIZ >>108
mpirだな
mpirだな
117デフォルトの名無しさん
2022/06/05(日) 13:23:08.93ID:VgN5DVM1 ただの文字列なら速さで選ぶのも良いけど、HTMLやXMLのような注釈を含むテキストは、STLやboostを使うのがスマート。
118デフォルトの名無しさん
2022/06/05(日) 13:27:27.15ID:TqTpE262 re2は遅いうえに\1みたいな後方参照をサポートしてないのが痛い
119デフォルトの名無しさん
2022/06/05(日) 13:44:58.69ID:JAUYaj4s 別に即戦力求めてるわけじゃないので開発言語で縛って間口狭くしたくないんですよ でも質疑応答のクオリティ上げるためには突っ込んだ質問って必要じゃないですか 今回はそれが上手く出来なかっただけです
120デフォルトの名無しさん
2022/06/05(日) 15:40:19.58ID:udiiYXiV ようするに基礎があるかどうかと伸びしろがあるかどうかだろ
今知らなくても調べればすぐ判ることが出来れば問題無い罠
今知らなくても調べればすぐ判ることが出来れば問題無い罠
121デフォルトの名無しさん
2022/06/05(日) 16:50:16.03ID:sROqatdZ 本人が経歴盛ってるならクズだが、営業やエージェントが勝手に盛ってることもあるからな
その辺も見極めて大目に見てほしい
その辺も見極めて大目に見てほしい
122デフォルトの名無しさん
2022/06/05(日) 17:21:37.24ID:dinbGc5/ 自分のとこが金をいくら出せるのか考えてからマウント取ってほしいもんだわ
123デフォルトの名無しさん
2022/06/05(日) 17:37:12.61ID:DpfkldE/ 対価は市場感より高めに設定していますね
AWSと同じぐらいのはずです
AWSと同じぐらいのはずです
124デフォルトの名無しさん
2022/06/05(日) 17:59:03.07ID:MGWqyCtZ >>117
そもそもそんな用途にC++ってどうなの?
そもそもそんな用途にC++ってどうなの?
125デフォルトの名無しさん
2022/06/05(日) 18:15:07.18ID:VgN5DVM1 >>124
ブラウザでctrl+f押してみ。
ブラウザでctrl+f押してみ。
126デフォルトの名無しさん
2022/06/05(日) 18:28:12.08ID:dinbGc5/ >>123
手取りで1000万くらいですか?
手取りで1000万くらいですか?
127デフォルトの名無しさん
2022/06/05(日) 19:24:35.36ID:/AT5pgYO htmlは知らんがxmlの読み書きはC++のプログラムで一般的じゃね
128デフォルトの名無しさん
2022/06/05(日) 22:30:48.15ID:n7vwmg3m C言語の基本を学んでC++を勉強を始めました
バッファのフラッシュについて教えてください
プログラムは最後に全てのバッファがフラッシュされると思いますが、
std::flashやstd::endlはどういった時に使えばいいのでしょうか?
また、フラッシュの処理時間を考えるとstd::endlよりも'\n'を使った方が軽くなると思いますが、
あえてstd::endlを使う意味はありますか?
このフラッシュという概念はC言語になかったですよね…?
バッファのフラッシュについて教えてください
プログラムは最後に全てのバッファがフラッシュされると思いますが、
std::flashやstd::endlはどういった時に使えばいいのでしょうか?
また、フラッシュの処理時間を考えるとstd::endlよりも'\n'を使った方が軽くなると思いますが、
あえてstd::endlを使う意味はありますか?
このフラッシュという概念はC言語になかったですよね…?
129デフォルトの名無しさん
2022/06/05(日) 22:41:22.00ID:FJOOY/QK fflush()を知らずにC言語を使ってきたなら気にする必要はない
130デフォルトの名無しさん
2022/06/05(日) 22:53:56.06ID:ypMgugQ8 >>128
キミの疑問の中に答えがあると思うんだが
>プログラムは最後に全てのバッファがフラッシュされると思いますが、
逆に言えばプログラムの途中ではいつバッファの内容がflashされるかわからないってことじゃん
どういった時に使えばいいのか、なんてプログラムの最後ではなく途中でflashしたい時だろ
キミの疑問の中に答えがあると思うんだが
>プログラムは最後に全てのバッファがフラッシュされると思いますが、
逆に言えばプログラムの途中ではいつバッファの内容がflashされるかわからないってことじゃん
どういった時に使えばいいのか、なんてプログラムの最後ではなく途中でflashしたい時だろ
131デフォルトの名無しさん
2022/06/05(日) 22:55:08.26ID:JCaRLrt5 stderr(バッファリング無し)とstdout(デフォルトでバッファリング有り)のリダイレクト先が同じ(コンソール等)のとき、
printf()とfprintf()の実行順にprintf()とfprintf()の出力結果を並ばせたいときに早速ffush(stdout)の出番が、
あとfflush()せずにabort()したらバッファ上のデータが失われることがある
もっともabort()を呼ぶしかない状況とかはどうしようもない状況なので盲目的なfflush()が適切とは言えないケースも
ありえるかもし
れんが
printf()とfprintf()の実行順にprintf()とfprintf()の出力結果を並ばせたいときに早速ffush(stdout)の出番が、
あとfflush()せずにabort()したらバッファ上のデータが失われることがある
もっともabort()を呼ぶしかない状況とかはどうしようもない状況なので盲目的なfflush()が適切とは言えないケースも
ありえるかもし
れんが
132デフォルトの名無しさん
2022/06/05(日) 23:00:34.55ID:JCaRLrt5 んまー通常はファイルのクローズでフラッシュされるから明示的にファイルポインタに対してfflush()する必要に迫られることはなさげ
腸人工的なシチュエーション(でありかあまり良い設計でない例)として、
オープンしたままのファイルA、Bにこの順でデータが追記されることを気体するプロセスが他に居るときに
A、Bの順で追記するとき要る?ぐらい??
腸人工的なシチュエーション(でありかあまり良い設計でない例)として、
オープンしたままのファイルA、Bにこの順でデータが追記されることを気体するプロセスが他に居るときに
A、Bの順で追記するとき要る?ぐらい??
133デフォルトの名無しさん
2022/06/05(日) 23:11:06.10ID:TqTpE262 他のプロセスと通信する時に明示的なバッファフラッシュが必要になることがあるよ
134デフォルトの名無しさん
2022/06/05(日) 23:17:22.56ID:JCaRLrt5 >>133
それは思わないでもなかったが、
1. バッファに入った順で出ていく
2. ほっといてもバッファ内容がどんどん出ていく
3. 通信は送りっぱなしまたはロジカルなハンドシェーク手順
である場合にfflush()が必須というケースが思いつきませなんだ、
それは思わないでもなかったが、
1. バッファに入った順で出ていく
2. ほっといてもバッファ内容がどんどん出ていく
3. 通信は送りっぱなしまたはロジカルなハンドシェーク手順
である場合にfflush()が必須というケースが思いつきませなんだ、
135デフォルトの名無しさん
2022/06/05(日) 23:24:31.44ID:/ywqNijR 1行ごとに結構重い処理をしたり、std::cinが入ってくるタイミングが不定期だったりするときに1行ごとにflushしておくと便利。
C言語でも使うテクニックだけどね
C言語でも使うテクニックだけどね
136デフォルトの名無しさん
2022/06/05(日) 23:25:34.70ID:TqTpE262 送信側(自アプリ)じゃなくて受信側(他アプリ)の都合次第なので
137デフォルトの名無しさん
2022/06/05(日) 23:36:59.90ID:JCaRLrt5 >受信側(他アプリ)の都合次第
どのような都合かkwsk、
fflush()したら動いて、fflush()しないと止まってしまう通信処理とかはなんかおかしいのでは……
ほっといてもバッファ内容がどんどん出ていく 限りfflush()せずとも送信は成立する
受け取れたかどうかはACKかNAKでも返してもらえばワカルから、
受信タイムうアウト検知ぐらいしかタイミングが関係する要素は無さげ、
どのような都合かkwsk、
fflush()したら動いて、fflush()しないと止まってしまう通信処理とかはなんかおかしいのでは……
ほっといてもバッファ内容がどんどん出ていく 限りfflush()せずとも送信は成立する
受け取れたかどうかはACKかNAKでも返してもらえばワカルから、
受信タイムうアウト検知ぐらいしかタイミングが関係する要素は無さげ、
138デフォルトの名無しさん
2022/06/05(日) 23:57:14.80ID:TqTpE262 「受け取れたかどうかはACKかNAKでも返してもらえばワカル」ってのがすでに受信側の都合だろ
139デフォルトの名無しさん
2022/06/06(月) 00:02:59.46ID:NTJIoMOy コンテキストスイッチをきっかけにフラッシュするような仕組みはあるん?
140デフォルトの名無しさん
2022/06/06(月) 00:15:14.95ID:1jBvtBty それがフラッシュしておかないと停電のときデータ全部持ってかれるんだよな
141デフォルトの名無しさん
2022/06/06(月) 00:19:06.76ID:68av+k9D とりあえず言っておくが、水がもったいないからと言って水洗トイレを流さずに退出するのはやめたほうがいい
142デフォルトの名無しさん
2022/06/06(月) 00:21:03.22ID:68av+k9D >>139
小便用トイレだと赤外線で退出を探知して水を流してくれるものもある
小便用トイレだと赤外線で退出を探知して水を流してくれるものもある
143デフォルトの名無しさん
2022/06/06(月) 00:23:36.15ID:1jBvtBty フラッシュってのはハードディスクにどこまでデータ書いたか正規化する目的で行うから、フラッシュしないで停電モードでクラッシュすると、復旧したときに書いてたデータはゼロバイトのままだったりするが、こまめにフラッシュでデータを確定申告してる場合は書いた分がきちんと残ってたりする
144デフォルトの名無しさん
2022/06/06(月) 00:26:15.98ID:Wu7kw3Sh これからは税務署に追徴課税されないように足繁く通うことにします。
145デフォルトの名無しさん
2022/06/06(月) 00:28:00.96ID:1jBvtBty ま、無停電装置つけてたり電源不足などでHDDが頻繁に切断される環境でなければ問題ないけどね
146デフォルトの名無しさん
2022/06/06(月) 00:28:38.87ID:68av+k9D 一休はすでに縄を持って待ち構えてくれているのだから、義満が虎を屏風から追い出せばいいだけ
簡単なことだろ
簡単なことだろ
147デフォルトの名無しさん
2022/06/06(月) 02:46:25.01ID:ETmHHhEk 誤解している人が多そうだけど
fflush()はC標準ライブラリの中のバッファリングデータを全て吐き出すだけであって
システムコールでいえばwriteするだけだよ
一方でカーネルがディスクなどに書き出すのを保証するのはシステムコールではsync/fsyncであってこれはfflush()しても行われない別のもの
fflush()はC標準ライブラリの中のバッファリングデータを全て吐き出すだけであって
システムコールでいえばwriteするだけだよ
一方でカーネルがディスクなどに書き出すのを保証するのはシステムコールではsync/fsyncであってこれはfflush()しても行われない別のもの
14859
2022/06/06(月) 03:12:54.60ID:hkI7oR+t 遅レスすいません。
右辺値参照周りを自分でも見直してきたんですが、
最終的に「vecの要素」に所有権を押し付けるコードは↓で正しいのでしょうか?
void add(vector<int> &&x){
vec.push_back(std::move(x));
};
・std::forwardを使う場合は、型がテンプレートの場合(フォワーディング参照の場合)に使うのが一般的であって、
上では具体的な型(vector<int>)を指定しているので、forwardを使う場合に当てはまらない。
・vector<int> &&xとして引数を受け取っても(右辺値参照として引数を受け取っても)、
右辺値参照自体は左辺値になるので、
vec.push_back(x)としてしまうと、呼ばれるpush_backは push_back(const T&)であり、所有権が移譲されない。
なので、ここでもmoveする必要がある(vec.push_back(std::move(x))
この理解であってますか?
右辺値参照周りを自分でも見直してきたんですが、
最終的に「vecの要素」に所有権を押し付けるコードは↓で正しいのでしょうか?
void add(vector<int> &&x){
vec.push_back(std::move(x));
};
・std::forwardを使う場合は、型がテンプレートの場合(フォワーディング参照の場合)に使うのが一般的であって、
上では具体的な型(vector<int>)を指定しているので、forwardを使う場合に当てはまらない。
・vector<int> &&xとして引数を受け取っても(右辺値参照として引数を受け取っても)、
右辺値参照自体は左辺値になるので、
vec.push_back(x)としてしまうと、呼ばれるpush_backは push_back(const T&)であり、所有権が移譲されない。
なので、ここでもmoveする必要がある(vec.push_back(std::move(x))
この理解であってますか?
149デフォルトの名無しさん
2022/06/06(月) 08:55:53.89ID:Ug3DHjCK150デフォルトの名無しさん
2022/06/06(月) 09:02:16.31ID:Ug3DHjCK151デフォルトの名無しさん
2022/06/06(月) 10:28:12.30ID:x36Ky4fa WinだとFileFlushBuffersだけで完結する
152デフォルトの名無しさん
2022/06/06(月) 10:28:30.66ID:0alNkgKE noexceptの有無で動作が変わるなんてC++ムズすぎィ!
154デフォルトの名無しさん
2022/06/06(月) 11:43:05.77ID:Ug3DHjCK まあ原因と結果が全然離れた別の場所で起こるっていう意味では難易度高いとは思う
155デフォルトの名無しさん
2022/06/06(月) 12:41:54.06ID:jOQJjNZV >>148
あってる
あってる
156デフォルトの名無しさん
2022/06/06(月) 21:20:45.44ID:FY57Ayyt >>126
この国は累進課税なのでそのラインは難しいですね
この国は累進課税なのでそのラインは難しいですね
157デフォルトの名無しさん
2022/06/08(水) 00:14:11.77ID:0qhQo4nk158デフォルトの名無しさん
2022/06/08(水) 00:17:03.29ID:xZpQpCco moveをやれるヤツはmoveをやる勇気があるヤツだけだ
159デフォルトの名無しさん
2022/06/08(水) 22:59:00.34ID:lI0dIi5c >>138
話をそらすでないは;;;
通常のキャラクタ型デバイスならfflush()せずともバッファ内容がどんどん出ていって
受信側(他アプリ)に伝わるやんけ
fflush()全然必須じゃないやんけ
fflush()に関してはやっぱ受信側の都合も糞も無いやんけ;;;
んまー今日日の計算機は速いから、世迷言てんこ盛りの呪術指向プログラミングでも
比較的まともっぽく動くが、
話をそらすでないは;;;
通常のキャラクタ型デバイスならfflush()せずともバッファ内容がどんどん出ていって
受信側(他アプリ)に伝わるやんけ
fflush()全然必須じゃないやんけ
fflush()に関してはやっぱ受信側の都合も糞も無いやんけ;;;
んまー今日日の計算機は速いから、世迷言てんこ盛りの呪術指向プログラミングでも
比較的まともっぽく動くが、
160デフォルトの名無しさん
2022/06/08(水) 23:03:01.67ID:lI0dIi5c fflush()にはフロー制御で止まっている送信を動かす力は無いし、
ブロック型デバイスの書き込みのトリガーになる保証は無いしで
やっぱ使いどころは>>131みたいに多対1の書き込み(dstが同じ)というケースでの論理的な書き込み順序保証ぐらいしか無さげ
ブロック型デバイスの書き込みのトリガーになる保証は無いしで
やっぱ使いどころは>>131みたいに多対1の書き込み(dstが同じ)というケースでの論理的な書き込み順序保証ぐらいしか無さげ
161デフォルトの名無しさん
2022/06/08(水) 23:39:12.93ID:TQgrAlst >>159
水に流せ
水に流せ
162デフォルトの名無しさん
2022/06/09(木) 19:04:36.80ID:d61AFL9R 受信側の都合どうこうの話は知らんが
>通常のキャラクタ型デバイスならfflush()せずともバッファ内容がどんどん出ていって
それは送信側がどんどん送り出している場合でしょ
>通常のキャラクタ型デバイスならfflush()せずともバッファ内容がどんどん出ていって
それは送信側がどんどん送り出している場合でしょ
163デフォルトの名無しさん
2022/06/09(木) 19:12:48.98ID:6LGi7Ubo 高機能トイレしか使ったことない人は、何もしなくても離席したら勝手に排泄物が流されていくと思っているからね
164デフォルトの名無しさん
2022/06/09(木) 19:16:36.26ID:ftpPDZQh 停電おこったことないんだろうね
165デフォルトの名無しさん
2022/06/09(木) 21:05:58.36ID:Y+xZp6wU トイレの水流すのもflushだったなwww
166デフォルトの名無しさん
2022/06/09(木) 21:14:08.39ID:0SCWcBb2 むしろコンピュータ用語のflushの方がトイレからの連想
167デフォルトの名無しさん
2022/06/10(金) 18:08:30.15ID:PT4Yy0z8 flushつったらズリセンだろ
168デフォルトの名無しさん
2022/06/10(金) 18:15:06.01ID:q3uEdydr 長時間ストリーミング書き込み時にFileFlushBuffersコールしてなかった停電時の悲劇
169128
2022/06/11(土) 13:05:09.88ID:qY+svW4r なんとなく分かりましたが、C言語でfflush()を使っていなかったので困ることもなさそうです
改行は'\n'を使ってもう少し勉強を進めてから改めて皆さんのレスを読み返そうと思います
返事が遅くなりました、ありがとうございました
改行は'\n'を使ってもう少し勉強を進めてから改めて皆さんのレスを読み返そうと思います
返事が遅くなりました、ありがとうございました
170デフォルトの名無しさん
2022/06/11(土) 15:25:15.53ID:b1p/w9+9 https://ideone.com/P9fDXn
コンパイル通らねー。
コンパイル通らねー。
171デフォルトの名無しさん
2022/06/11(土) 21:16:14.33ID:ZeuO2q0P172デフォルトの名無しさん
2022/06/11(土) 21:25:33.69ID:ZeuO2q0P >>168
左様停電に対して備えたいならI/Oストリームのバッファ階層の操作で満足するのではなくて
ioctlレヴェルの働きかけで掃き出し操作を保証を行うべき、(デバイスによってやるべきことが違う
というわけで論理的思考う能力に乏しい香具師がfflush()万能教にはまっている悪寒、
左様停電に対して備えたいならI/Oストリームのバッファ階層の操作で満足するのではなくて
ioctlレヴェルの働きかけで掃き出し操作を保証を行うべき、(デバイスによってやるべきことが違う
というわけで論理的思考う能力に乏しい香具師がfflush()万能教にはまっている悪寒、
173デフォルトの名無しさん
2022/06/11(土) 21:47:10.33ID:ZeuO2q0P ていうかそもそも馬鹿でかいバッファを用意しておいてから停電を恐れるというのはアレな発想でありまして、
真に停電に備えたいなら馬鹿でかいバッファを備えたデータのストリームとは別に、
どこまで書き込みが終わったかというだけの小さいサイズのジャーナル情報を
こまめに書くというのがファイナルアンサーであって
停電の際はジャーナル情報だけ保証して停電の瞬間に馬鹿でかいバッファ上にあったデータは諦めるのが正しいシステム
停電による処理中データの喪失がどうしても嫌ということなら速度の方を諦めてアンバッファーにするかバッファを小さくしてくだち、
真に停電に備えたいなら馬鹿でかいバッファを備えたデータのストリームとは別に、
どこまで書き込みが終わったかというだけの小さいサイズのジャーナル情報を
こまめに書くというのがファイナルアンサーであって
停電の際はジャーナル情報だけ保証して停電の瞬間に馬鹿でかいバッファ上にあったデータは諦めるのが正しいシステム
停電による処理中データの喪失がどうしても嫌ということなら速度の方を諦めてアンバッファーにするかバッファを小さくしてくだち、
174デフォルトの名無しさん
2022/06/11(土) 21:56:10.36ID:ZeuO2q0P まとめ:
この地球上のどこを探しても停電への備えがこまめなfflush()(笑)ということはありえない
この地球上のどこを探しても停電への備えがこまめなfflush()(笑)ということはありえない
175デフォルトの名無しさん
2022/06/11(土) 22:48:11.94ID:fc6R3/Uh まだ言うか!
176デフォルトの名無しさん
2022/06/11(土) 23:31:57.10ID:pfxnOy19 小さいサイズでもそれが即座に反映だれるとは限らないけどな
停電に備えるならUPSだろ
何がこまめに書くのがファイナルアンサーだよ
突然の電源断で書き込み先のデバイスが壊れる可能性だってあるんだからな
停電に備えるならUPSだろ
何がこまめに書くのがファイナルアンサーだよ
突然の電源断で書き込み先のデバイスが壊れる可能性だってあるんだからな
177デフォルトの名無しさん
2022/06/11(土) 23:44:48.33ID:/CWj/UNa 粗悪なUPS使って電源破損した事あるから良い印象ないな
178デフォルトの名無しさん
2022/06/12(日) 13:55:23.39ID:0uPAg53b FFTで2^(2^34)-1を計算するやつの倍速化したやつをさらに倍速化したった……!
■ オリジナル
https://ideone.com/xSaa6x
2200秒
■ C++書き換え版
https://ideone.com/oDgjXr
2200秒
■ 倍速化
https://ideone.com/xHSzFD
962秒
■ ブロック6-step algorithm適用
https://ideone.com/rFCMy5
909秒 (倍速化版の94%) --- OpenMP無効、シングルスレッド
596秒 (倍速化版の62%) --- OpenMP有効、8スレッド
■ オリジナル
https://ideone.com/xSaa6x
2200秒
■ C++書き換え版
https://ideone.com/oDgjXr
2200秒
■ 倍速化
https://ideone.com/xHSzFD
962秒
■ ブロック6-step algorithm適用
https://ideone.com/rFCMy5
909秒 (倍速化版の94%) --- OpenMP無効、シングルスレッド
596秒 (倍速化版の62%) --- OpenMP有効、8スレッド
179デフォルトの名無しさん
2022/06/12(日) 13:55:40.64ID:0uPAg53b なんかもうCPUの帯域全部使い切ってやったぜ、みたいな
達成感みある、
ただし実行時間の2/3ぐらいはファイルの書き出しに使われている模様orz
OpenMP有効化の条件だと
2^(2^31)-1までは1分以内に出て、
以降はVS2019の分析ツールのCPU時間のグラフを眺める限り、
ファイル出力を覗く正味の計算時間は
2^(2^32)-1: 20秒
2^(2^33)-1: 不明(見てなかった)
2^(2^34)-1: 62秒
だったので、ファイル出力を除く正味の計算時間は多分3分ぐらい、
達成感みある、
ただし実行時間の2/3ぐらいはファイルの書き出しに使われている模様orz
OpenMP有効化の条件だと
2^(2^31)-1までは1分以内に出て、
以降はVS2019の分析ツールのCPU時間のグラフを眺める限り、
ファイル出力を覗く正味の計算時間は
2^(2^32)-1: 20秒
2^(2^33)-1: 不明(見てなかった)
2^(2^34)-1: 62秒
だったので、ファイル出力を除く正味の計算時間は多分3分ぐらい、
180デフォルトの名無しさん
2022/06/12(日) 14:00:10.22ID:0uPAg53b OpenMPは昨日始めたのでなんか間違ってるかもしれん……orz
行列の転置が8スレッド使って(2回目以降も)実行時間1/8にならない件について:
https://ideone.com/rFCMy5
のfftb6::transpose()のコードの書き方だと50%ぐらいにしか短縮されなんだ 。n_
行列の転置が8スレッド使って(2回目以降も)実行時間1/8にならない件について:
https://ideone.com/rFCMy5
のfftb6::transpose()のコードの書き方だと50%ぐらいにしか短縮されなんだ 。n_
181デフォルトの名無しさん
2022/06/12(日) 14:02:02.73ID:0uPAg53b つなみにVS2019でOpenMP有効にするには
「構成プロパティー」→「C/C++」→「言語」→「OpenMP のサポート」
で逝ける、
「構成プロパティー」→「C/C++」→「言語」→「OpenMP のサポート」
で逝ける、
182デフォルトの名無しさん
2022/06/12(日) 14:04:35.42ID:0uPAg53b >>176
>何がこまめに書くのがファイナルアンサーだよ
NTFSの実装、、、
>突然の電源断で書き込み先のデバイスが壊れる可能性だってあるんだからな
しらそん
それはUPSを買う金もないのに停電とかを引き合いに出してきた香具師に言ってやってくだち
>何がこまめに書くのがファイナルアンサーだよ
NTFSの実装、、、
>突然の電源断で書き込み先のデバイスが壊れる可能性だってあるんだからな
しらそん
それはUPSを買う金もないのに停電とかを引き合いに出してきた香具師に言ってやってくだち
183デフォルトの名無しさん
2022/06/12(日) 14:10:01.25ID:6VBjP0iK 8スレッドで4倍くらいになってほしいね
184デフォルトの名無しさん
2022/06/13(月) 00:27:41.34ID:HWF8Czmy もちついて考えたら
#pragma omp parallel for firstprivate(i, n1, n2, nb, JJ)
for (pow_t j = JJ; j < JJ + nb; j++) {
const pow_t src_idx = n2 * i + j;
const pow_t dst_idx = n1 * j + i;
dst[2 * dst_idx] = src[2 * src_idx]; // 実部
dst[2 * dst_idx + 1] = src[2 * src_idx + 1]; // 虚部
}
と書いては見たがこのdst[]やsrc[]は実は生の配列ではなくてstd::vector<double>::iteratorなので
共用変数扱いになってスレッド間で排他がかかっているのかもしれん……orz
firstprivate()指示句が(最適化後はポインタとはいえ)C++のオブジェクトを受け取れるかはわからんので
parallel forの前にポインタに置き換えてポインタをfirstprivate()するのが無難鴨、
(同じことはsinテーブルpriroot::nth_root wについても言える)
#pragma omp parallel for firstprivate(i, n1, n2, nb, JJ)
for (pow_t j = JJ; j < JJ + nb; j++) {
const pow_t src_idx = n2 * i + j;
const pow_t dst_idx = n1 * j + i;
dst[2 * dst_idx] = src[2 * src_idx]; // 実部
dst[2 * dst_idx + 1] = src[2 * src_idx + 1]; // 虚部
}
と書いては見たがこのdst[]やsrc[]は実は生の配列ではなくてstd::vector<double>::iteratorなので
共用変数扱いになってスレッド間で排他がかかっているのかもしれん……orz
firstprivate()指示句が(最適化後はポインタとはいえ)C++のオブジェクトを受け取れるかはわからんので
parallel forの前にポインタに置き換えてポインタをfirstprivate()するのが無難鴨、
(同じことはsinテーブルpriroot::nth_root wについても言える)
185デフォルトの名無しさん
2022/06/13(月) 14:39:57.67ID:efPEc9j/ std::complexは使わないの?
186デフォルトの名無しさん
2022/06/13(月) 15:28:43.59ID:Wf2qSIvf びーまいべいべー
187デフォルトの名無しさん
2022/06/13(月) 23:36:52.53ID:dm71PatD 並列処理に何でマルチスレッド使ってんだよ
昭和からタイムスリップしてきたのか?
昭和からタイムスリップしてきたのか?
188デフォルトの名無しさん
2022/06/14(火) 00:17:42.26ID:SQz7DEKB omp って単語を見るとおまんぽにしか見えない
189デフォルトの名無しさん
2022/06/14(火) 01:23:09.85ID:e+DfEXd1 >>187
この問題でasyncプログラミングがどうやってマルチスレッドに太刀打ちするのか教えて
この問題でasyncプログラミングがどうやってマルチスレッドに太刀打ちするのか教えて
190デフォルトの名無しさん
2022/06/14(火) 16:46:20.69ID:yDV29Um0 教えてください
C++で書かれたDLLがあります
とあるCエクスポート関数を呼び出すと稀に Access Violation 0xc0000005 が発生することがありプロセスが異常終了してしまいます
幸いなことにこの関数は大した仕事をしておらず結果が得られなければそれで困ることもありません(結果が得られれば少し役に立つ程度です)
なのでこの関数の失敗を握り潰したいのですが、C++ でアクセス違反を try-catch で握り潰すことはできるのでしょうか?
それともアクセス違反は致命的なエラーなので必ずプロセス終了に至るのでしょうか?
C++で書かれたDLLがあります
とあるCエクスポート関数を呼び出すと稀に Access Violation 0xc0000005 が発生することがありプロセスが異常終了してしまいます
幸いなことにこの関数は大した仕事をしておらず結果が得られなければそれで困ることもありません(結果が得られれば少し役に立つ程度です)
なのでこの関数の失敗を握り潰したいのですが、C++ でアクセス違反を try-catch で握り潰すことはできるのでしょうか?
それともアクセス違反は致命的なエラーなので必ずプロセス終了に至るのでしょうか?
191デフォルトの名無しさん
2022/06/14(火) 16:54:42.88ID:Vdns4Gf+ またこのネタ掘り起こしたいのか・・・
192デフォルトの名無しさん
2022/06/14(火) 17:18:04.76ID:NNc5VmHP >>190
.NETは使っとらんの?
.NETは使っとらんの?
193デフォルトの名無しさん
2022/06/14(火) 17:23:59.58ID:rBU/2bdp https://docs.microsoft.com/ja-jp/cpp/build/reference/eh-exception-handling-model?view=msvc-170
呼び出し側のコンパイルで /EHa オプションつければ try-catch で握りつぶせるんでね?
呼び出し側のコンパイルで /EHa オプションつければ try-catch で握りつぶせるんでね?
194デフォルトの名無しさん
2022/06/14(火) 18:22:20.04ID:WigeF4Tr195デフォルトの名無しさん
2022/06/14(火) 18:39:01.73ID:yDV29Um0196デフォルトの名無しさん
2022/06/14(火) 19:23:09.63ID:bI70PJIL DLLが例外出してるのをCで握り潰してるのが原因だろ
197デフォルトの名無しさん
2022/06/15(水) 20:40:34.83ID:RdmQ7I01 素人の質問でごめんなさい。(ここが一番関連ありそうだったので)
バイオインフォマティクスをやっているのですが、例えば主にC++で書かれたUnicycler (https://github.com/rrwick/Unicycler)というソフトウェアでは、--threadsオプションで使用するスレッド数を指定できます。
デフォルトだとスレッド数8なのですが、仮にそれを1コアを使って実行した際はどのような挙動になるのでしょうか。
コア数<スレッド数なので失敗するかと思ったのですが、思いの他うまく実行できてしまいます。
一般的にこういう場合、並列 (parallel)処理ではなく並行 (concurrent)処理で、スレッドごとに時間を分けて同一コアで処理している、ということなのでしょうか・・・
バイオインフォマティクスをやっているのですが、例えば主にC++で書かれたUnicycler (https://github.com/rrwick/Unicycler)というソフトウェアでは、--threadsオプションで使用するスレッド数を指定できます。
デフォルトだとスレッド数8なのですが、仮にそれを1コアを使って実行した際はどのような挙動になるのでしょうか。
コア数<スレッド数なので失敗するかと思ったのですが、思いの他うまく実行できてしまいます。
一般的にこういう場合、並列 (parallel)処理ではなく並行 (concurrent)処理で、スレッドごとに時間を分けて同一コアで処理している、ということなのでしょうか・・・
198はちみつ餃子 ◆8X2XSCHEME
2022/06/15(水) 20:45:50.35ID:VY0KZJ3n >>197
> スレッドごとに時間を分けて同一コアで処理している、ということなのでしょうか
せやで。
OS がスケジューリングしてスレッドを交互に実行しとる。
コア数以上のスレッドに分けても実行速度が上がったりはしないよ。
コンテキスト切り替えのコストの分だけむしろ遅くなると思う。
> スレッドごとに時間を分けて同一コアで処理している、ということなのでしょうか
せやで。
OS がスケジューリングしてスレッドを交互に実行しとる。
コア数以上のスレッドに分けても実行速度が上がったりはしないよ。
コンテキスト切り替えのコストの分だけむしろ遅くなると思う。
199デフォルトの名無しさん
2022/06/15(水) 21:02:51.51ID:RdmQ7I01 >>198
なるほど、OS賢いですね。。
つまり1コアでやるときは複数スレッドの処理もできるけど、無難に1スレッドの処理にした方がむしろ速い、ということですね。
勉強になりました!ありがとうございます!
なるほど、OS賢いですね。。
つまり1コアでやるときは複数スレッドの処理もできるけど、無難に1スレッドの処理にした方がむしろ速い、ということですね。
勉強になりました!ありがとうございます!
200デフォルトの名無しさん
2022/06/15(水) 21:05:28.34ID:74xVOU49 各スレッドがio待ちしてるかも知れんし、コア数より多くても早くなる場合もあるんじゃね
gcc動かすときもコア数1.5倍位指定してる
gcc動かすときもコア数1.5倍位指定してる
201デフォルトの名無しさん
2022/06/15(水) 21:28:42.61ID:RdmQ7I01 調べてみたらコンテキストスイッチにもプロセスコントキストスイッチとスレッドコンテキストスイッチがあって、
後者の方がコストが格段に低いとありました。
この場合は同一プロセス中の複数スレッドで後者なので、
>>200さんの言っていることもありますし、コア数よりスレッド数を少し多めに設定しても速くなるのかもしれませんね。
実験して確かめるのが一番かもですね。
後者の方がコストが格段に低いとありました。
この場合は同一プロセス中の複数スレッドで後者なので、
>>200さんの言っていることもありますし、コア数よりスレッド数を少し多めに設定しても速くなるのかもしれませんね。
実験して確かめるのが一番かもですね。
202デフォルトの名無しさん
2022/06/15(水) 21:38:32.69ID:vqdnmmaI まあ今の実装は大抵スレッドといいつつプロセスだったりするけどね
203デフォルトの名無しさん
2022/06/15(水) 22:07:11.11ID:Ltc382Vw >>202
何の話だ?
何の話だ?
204デフォルトの名無しさん
2022/06/15(水) 22:21:16.61ID:5/k7QI1P pythonはそんな感じがする
205デフォルトの名無しさん
2022/06/15(水) 22:28:16.78ID:Ltc382Vw pythonでもマルチスレッドとマルチプロセッシングは別物だろが
206デフォルトの名無しさん
2022/06/15(水) 22:34:39.36ID:Z7kfo4VR Linuxのスレッドはプロセスだと聞いた
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- イギリス「日本でニュースに関するインフルエンサーを順位付けした」 1位ひろゆき 4位ガレソ 5位池上彰 ガチで終わってると話題に [279254606]
- ハゲがレジやってるコンビニって
- 4時だから窓から4回ちんこ出した
- クマどもが冬眠拒否
- 抜いたことある歴史上の人物
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
