Python多处理池在Linux和Windows之间有不同的行为。
当按工作人员的数量运行方法时,在Linux中它运行的是作为参数给定的特定函数的作用域上的进程,但是在Windows中,每个工作人员在父进程的范围内运行,并再次使用它不应该使用的代码。
例如:(只用于使其与我的代码类似)
from multiprocessing import Pool, Event
from flask import Flask
print(">>> This code running for every each worker")
app = Flask(__name__
我有这个代码(文件名是test.jl),它是一个更复杂的代码的简化版本: using Distributed, SharedArrays
using LinearAlgebra
using PyCall
@everywhere @pyimport scipy.optimize as so
function fun() # Coupling constants
Ntraj = 2
Ntime = 10
result = @distributed (+) for ktraj = 1 : Nt
我有一个函数func,在单个核上运行时可能要花费50美元。现在我想在一个拥有192个核心CPU多次的服务器上运行它。但是,当我将工作进程添加到180时,每个核心的性能都会减慢。最糟糕的CPU需要花费100多秒来计算func。
有人能帮帮我吗?
这是伪代码
using Distributed
addprocs(180)
@everywhere include("func.jl") # defines func in every process
First try using only 10 workers
@sync @distributed for i in 1:10
我试图在服务器上使用远程工作人员运行一些代码,我想在Julia1.5.3上与本地工作人员进行组合。当24名员工在本地运行时,以下代码可以正常工作:
using Distributed
using SharedArrays
a = SharedArray{Float64}(100)
@sync @distributed for i = 1:100
a[i] = i+1
end
sum(a)
如果我用
N_remote = 24
for i=1:N_remote
addprocs(["user@192.168.0.129"], tunnel=true, dir=
我试图为一项涉及阅读大量文件并对其进行分析的任务创建员工。
我想要这样的东西:
list_of_unique_keys_from_csv_file = [] # About 200mb array (10m rows)
# a list of uniquekeys for comparing inside worker processes to a set of flatfiles
我需要更多的线程,因为它运行非常慢,与一个进程进行比较(每个文件10分钟)。
我有另一组比较CSV文件的平面文件,以查看是否存在唯一的键。这似乎是一个地图减少类型的问题。
main.py:
def worker_p
假设我的电脑上有8个核。我已经在RAM中加载了一个2Go数据集,我希望这些工作人员中的每一个只从该数据集中读取我所做的工作:
worker.function(rowstoread, dataset)
{
#read a couple of rows from the dataset (those rows are sent as argument to the worker function)
#process these rows
#return results
}
我想知道为什么这会在每个工作人员级别上产生数据集的副本,因为我的员工只是从数据集中读取数据集。它们没有修改数据集
我已经在单独的centos机器和相应的路由表之间配置了GRE隧道,如图所示:
I dont have enough reputation to post images
Router1-------gre1---------Transit-Router---------gre2--------Router2
10.2.32.0/24--Router1--10.0.0.1---gre1---10.0.0.2--Transit-Router--11.0.0.2---gre2--11.0.0.1--Router2--10.4.32.0/24
我可以从路由器-1到gre1隧道的另一端:
worker]#
显然,我对DistributedArrays.jl有一个根本的误解。我已经设置了一个类似于我必须做的事情的MWE:
using Distributed
using DistributedArrays
addprocs()
@everywhere using Distributed, DistributedArrays
a = distribute(zeros(5))
@sync @distributed for i in 1:5
a_l = localpart(a)
a_l[i] = 100 * i
end
然后我遇到以下错误:
ERROR: TaskFailedExce
#!/usr/bin/env python
import multiprocessing
import sys
import time
def sleeping_worker(state):
s_time = state['sleep_time']
print('sleeping_worker: start to sleep for {0} seconds'.format(s_time))
time.sleep(s_time)
def main():
# the main has been seen
man
我是库的开发者。我添加功能与phar可执行程序作为守护进程应用程序。并发现使用phar和进程派生undex linux时有奇怪的行为。每次主进程分支超过1个子进程时,我都会得到这样的错误
include(phar:///opt/www/worker.phar/vendor/path/to/file.php):
failed to open stream: phar error: internal corruption of phar
"/opt/www/worker.phar" (crc32 mismatch on file "vendor/path/to/
在Windows上使用Python将需要许多参数在传递给子进程时是“可选择的”。
import multiprocessing
class Foobar:
def __getstate__(self):
print("I'm being pickled!")
def worker(foobar):
print(foobar)
if __name__ == "__main__":
# Uncomment this on Linux
# multiprocessing.set_start_method(
我正在尝试在travis-ci服务上构建0ad,并且在没有任何进一步信息的情况下,我随机体验了返回代码137的apt-get install (或apt-get dist-upgrade)的失败。travis-ci基于Ubuntu 12.04。137表示什么?在https://travis-ci.org/krichter722/0ad/jobs/92938434中可以找到一个示例输出。
更多的系统信息。
$ uname -a && lsb_release -a
Linux testing-worker-linux-89e97461-1-15272-linux-4-6969273
我试图通过关闭流来中止已经阻塞的InputStream.read(),但是read()不返回。
public static void main(String args[]) throws Exception
{
ProcessBuilder builder = new ProcessBuilder("sleep", "100000");
Process process = builder.start();
final InputStream is = process.getInputStream();
Thread worker
我在Windows上运行Celery,我知道它在版本4中不受支持,但它在很大程度上仍然可以与eventlet一起工作。
在启动worker时,我尝试运行此init函数:
db = None
@worker_process_init.connect
def init_worker(**kwargs):
print('Initializing database connection for worker.')
global db
db = DB(dbname=os.getenv('DBNAME'))
我使用以下命令来运行worker:cel
我正在使用进行后台工作:
我有一个worker app/workers/data_import_worker.rb
class DataImportWorker
include Sidekiq::Worker
sidekiq_options retry: false
def perform(job_id,file_name)
begin
#Some logic in it .....
end
end
从文件库/parse_excel.rb调用的
def parse_raw_data
#job_id and #filename are defin
使用下面的代码,我得到了奇怪的输出:
import sys
from multiprocessing import Process
import time
from time import strftime
now =time.time()
print time.strftime("%Y%m%d %H:%M:%S", time.localtime(now))
fr= [1,2,3]
for row in fr:
print 3
print 1
def worker():
print 'worker line'
ti