Please select the category that most closely reflects your concern about the presentation, so that we can review it and determine whether it violates our Terms of Use or isn't appropriate for all viewers.
動画変換などのCPU時間のかかる処理を複数コアで並列処理すれば効率的だという話。例えばIntelのCore 2 Duoの場合、常に2プロセス走っていればシングルの半分の時間で済む。というわけでPythonでやってみた。 Pythonではthreading.ThreadとBoundedSemaphoreを使って制御するのが楽そうだ。プロセスの実行はsubprocess.Popenを使う。 ここでは、複数のAVI動画ファイルをmencoderを使ってMPEGファイルに変換してみる。まず、Threadクラスを継承したMyThreadクラスを作る。また、BoundedSemaphoreで同時に実行するプロセス数を指定する。とりあえずコア数と同じ2とした。そして動画ファイル分だけMyThreadのインスタンスを作り実行する。これだけ。ちなみにセマフォではwith文を使っているがPythonのバージョ
Tricorn Tech Labs はメールや LINE を用いた Web マーケティング SaaS に強みを持つトライコーン技術者によるブログです。 oktです。 普段、並列処理のプログラムを書くことは滅多にないんですが、今後のために GIL(Global Interpreter Lock) による影響を軽く確認しておこうと思ったのと、Python2.6 で実装されたmultiprocessing パッケージに触れておこうという事でネタにしてみました。 PythonやRubyでマルチスレッドな並列処理を書こうと思ったらGILの問題にぶち当たります。 最近のサーバでは2コア4コアが当たり前なのですが、GILの問題があると複数のCPUを有効利用できません。それを以下の言語とサンプルコードを使って状況確認します。 サンプルコードは、0から100,000,000までインクリメントするスレッドを4
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く