我正按顺序在3个不同的numpy 2D数组上执行一些大型计算.阵列很大,每个25000x25000.每次计算都需要很长时间,所以我决定在服务器上的3个CPU内核上并行运行其中的3个.我遵循标准的多处理指南并创建了2个进程和一个worker函数.两个计算正在通过这两个进程运行,第三个计算在本地运行而没有单独的进程.我传递巨大的数组作为过程的参数,如:
p1 = Process(target = Worker, args = (queue1, array1, ...)) # Some other params also going
p2 = Process(target = Worker, args = (queue2, array2, ...)) # Some other params also going
Run Code Online (Sandbox Code Playgroud)
Worker函数在队列中附加的列表中发回两个numpy向量(1D数组),如:
queue.put([v1, v2])
Run Code Online (Sandbox Code Playgroud)
我没用 multiprocessing.pool
但令人惊讶的是,我没有得到加速,实际上运行速度慢了3倍.通过大型阵列需要时间吗?我无法弄清楚发生了什么.我应该使用共享内存对象而不是传递数组吗?
如果有人可以提供帮助,我将感激不尽.
谢谢.
我正在尝试使用apache(2.2.22)和mod_wsgi(3.4)运行django(1.6)项目.我的python是2.7.3,默认是ubuntu 12.04.我已将所有内容从/ var/www设置为chmod 777向下.不幸的是它给了我
打开文件进行读取时出错:权限被拒绝,然后是脚本标题的过早结束:wsgi.py
谁能告诉我我做错了什么?我在这里发布我的error.log
root@whq-4:/var/www/Imse_dev2/Imse/Imse# tail -f /var/log/apache2/error.log
[Tue Jan 14 14:16:04 2014] [notice] caught SIGTERM, shutting down
[Tue Jan 14 14:16:08 2014] [notice] Apache/2.2.22 (Ubuntu) mod_wsgi/3.4 Python/2.7.3 configured -- resuming normal operations
[Tue Jan 14 14:16:28 2014] [error] /var/www/Imse_dev2/Imse
Error opening file for reading: Permission denied
[Tue Jan 14 14:21:32 2014] [error] [client 127.0.0.1] Premature end of script headers: wsgi.py
[Tue Jan 14 14:29:13 2014] [notice] caught SIGTERM, shutting down
[Tue Jan 14 14:29:13 2014] [notice] Apache/2.2.22 …Run Code Online (Sandbox Code Playgroud)