小编Pau*_*aul的帖子

Python多处理仅使用一个核心

我正在尝试使用标准python文档中的代码片段来学习如何使用多处理模块.代码将粘贴在此消息的末尾.我在Ubuntu 11.04上使用Python 2.7.1在四核机器上(根据系统监视器,由于超线程而给我八个核心)

问题:尽管已启动多个进程,但所有工作负载似乎只安排在一个核心上,接近100%的利用率.有时,所有工作负载都迁移到另一个核心,但工作负载从不在它们之间分配.

任何想法为什么会这样?

最好的祝福,

保罗

#
# Simple example which uses a pool of workers to carry out some tasks.
#
# Notice that the results will probably not come out of the output
# queue in the same in the same order as the corresponding tasks were
# put on the input queue.  If it is important to get the results back
# in the original order then consider using `Pool.map()` or
# `Pool.imap()` (which …
Run Code Online (Sandbox Code Playgroud)

python ubuntu multiprocessing

11
推荐指数
1
解决办法
1万
查看次数

链接-Wl,-E,它是什么意思等?

我正在开发一个项目,我们正在使用带有CPP-API的Basler Pylon相机.除了图片拍摄之外,我们的大多数其他代码都是用Python编写的,因此我们使用swig从CPP中包装take_image()函数.

这些是我们对swig和g ++的调用:

swig -python -c++ frompytocpp.i

g++ -c -fpic  cppcamera.cpp frompytocpp_wrap.cxx
-I/opt/pylon/genicam/library/CPP/include -I/opt/pylon/include -DUSE_GIGE
-I/usr/include/python2.6

g++ -shared cppcamera.o frompytocpp_wrap.o -o _frompytocpp.so
-L/opt/pylon/lib64 -L/opt/pylon/lib -L/opt/pylon/genicam/bin/Linux64_x64
-L/opt/pylon/genicam/bin/Linux64_x64/GenApi/Generic -Wl,-E -lpylonbase
-lpylonutility
Run Code Online (Sandbox Code Playgroud)

它编译得很好,但在运行时尝试创建一个摄像头对象时,抛出的异常似乎与未解析的符号有关.根据相机API手册,标志-Wl,-E是关键的"否则链接器将不会在运行时正确地知道和匹配pylon符号".我查找了g ++的man-page,意识到-Wl用于将选项传递给链接器,但无法确定传递给-Wl时-E选项会做什么.任何人?

运行时问题仅在从python调用图片拍摄功能时才会显现.所以只是标准编译的cppcamera.cpp合并-Wl,-E工作正常,但是当我们创建python中的包装器使用的共享库时,某些东西不正确/缺失.关于我们的g ++中可能缺少什么的任何建议 - 调用?

python linux swig g++

5
推荐指数
1
解决办法
2451
查看次数

标签 统计

python ×2

g++ ×1

linux ×1

multiprocessing ×1

swig ×1

ubuntu ×1