タグ

Pythonとmultiprocessingに関するoinumeのブックマーク (6)

  • Python multiprocessing: Permission denied

    I'm getting an error when trying to execute python program that uses multiprocessing package: File "/usr/local/lib/python2.6/multiprocessing/__init__.py", line 178, in RLock return RLock() File "/usr/local/lib/python2.6/multiprocessing/synchronize.py", line 142, in __init__ SemLock.__init__(self, RECURSIVE_MUTEX, 1, 1) File "/usr/local/lib/python2.6/multiprocessing/synchronize.py", line 49, in __i

    Python multiprocessing: Permission denied
  • multiprocessing Basics — PyMOTW 3

    multiprocessing Basics¶ The simplest way to spawn a second process is to instantiate a Process object with a target function and call start() to let it begin working. import multiprocessing def worker(): """worker function""" print('Worker') if __name__ == '__main__': jobs = [] for i in range(5): p = multiprocessing.Process(target=worker) jobs.append(p) p.start() The output includes the word “Work

    multiprocessing Basics — PyMOTW 3
    oinume
    oinume 2011/11/05
    join()について詳しい。ちゃんと読む
  • 第5回 multiprocessingモジュールによるプロセス間通信 | gihyo.jp

    multiprocessingモジュール multiprocessingモジュールは、Python2系列では2.6以降、3系列では3.0以降に標準となったモジュールです。このモジュールはthreadingモジュールに似たAPIでプロセス間通信などの機能を提供します。このモジュールにより、GILの問題を回避することができ、複数のCPUCPUコアの性能を生かすことができます。また、このモジュールはローカルのみならず、リモートでのプロセス間通信も行うことが可能で、簡単に分散処理などを実装することができます。 まず、GIL(Global Interpreter Lock)とはPythonのインタプリタ上で一度に1つのスレッドだけが動作するよう保証するためのロックです。このロックによって、同時に同じメモリにアクセスするスレッドが存在しないことを保証します。 しかしながら、このロックによって、一度に

    第5回 multiprocessingモジュールによるプロセス間通信 | gihyo.jp
  • greenletのススメ - Doge log

    最近、non-bloking I/O+強調スレッド+prefork(multiprocessing)なサーバフレームワーク的なものを 作ろうかと試行錯誤してる。 (aioはその次) でこいつを実現する上で重要なgreenletの解説があんましないので書いてみる。 greenletとは stackless pythonのようにマイクロスレッド(この言い方好きじゃないけど)が使えるようになるライブラリ。 (実際にはstackコピーと復元を行って継続をサポートする。それを応用してスレッドを実現) こいつはモジュールとして提供されるのでstacklessのように処理系を丸ごと入れ替えることなく使用できる。 yieldを使ったマイクロスレッドとは異なりどこからでもスイッチ可能。 (ネストの影響を受けない) ネイティブスレッドではないのでスイッチなどの処理は自前で行う必要がある。 (協調スレッド) メ

    greenletのススメ - Doge log
  • multiprocessing入門 - Doge log

    multiprocessingといっても今まであったos.forkをうまくラップしてくれてる というだけなのでプロセスをforkしたらどうなるの?っていうのを知らないと 扱えないと思われる。 forkすると子プロセスには今までの状態がコピーされるがその後はメモリ空間が 別々になる。 (当たり前の話) だが開いているfdとかファイルエントリテーブルなどは共有される。 どのタイミングでforkするかが個人的には重要。 例ではPIPEはいっさい使ってない。 from multiprocessing import current_process, cpu_count, Process, Manager, Queue import time class Parent(object): def __init__(self, name): self.name = name self.queue = Qu

    multiprocessing入門 - Doge log
  • 2.6に新搭載のmultiprocessingを見て俺のPythonがおっきした件 | TRIVIAL TECHNOLOGIES 4

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー いやー,multiprocessingモジュールイイよ。パねえよ。要はプロセス間通信を行うときに便利なパッケージで,threadingと似たようなAPIなのでGILが回避できてマルチプロセッサとかマルチコアの性能を有効に使えてウハウハとか,リモートマシンにあるプロセスと通信したりオブジェクトをやりとりしたりできてウハウハとか,まあそういうモノです。これでおっきしない奴は技術者として大切な資質を失っていると思うよ。べつにおっきしなくてもいいんだけど,そういう奴とは一緒に仕事したくないよ。 ドキュメントのイントロダクションを超訳してみたです。 はじめに multiprocessingはth

    oinume
    oinume 2010/10/10
    このモジュール便利そうだ。
  • 1