草庐IT

并行机

全部标签

python - 部署 Flask,并行请求

当我使用内置网络服务器测试我的新Flask应用程序时,一切都是“单线程”和阻塞的。服务器不能在未完成另一个请求的情况下服务一个请求。它一次只能处理一个请求。在部署网络服务时,这显然是不可取的。您如何部署Flask应用程序以便事情可以并行进行?关于代码内部的线程安全和并发性(使用锁保护对象等)是否需要考虑不同的事情,或者所有产品是否等同? 最佳答案 我将uWSGI与gevent循环一起使用。那就是门票。事实上,这就是我使用py-redis的方式,它是阻塞的而不是阻塞的。此外,我使用uWSGI在响应之后写入请求,同时仍然接受更多请求。

python - 使用 Python (IPython) 并行调用多个 API

我在本地计算机(Mac)上使用Python(IPython和Canopy)和RESTful内容API。我有一组3000个唯一ID可以从API中提取数据,并且一次只能使用一个ID调用API。我希望以某种方式并行进行3组1000次调用以加快速度。这样做的最佳方法是什么?在此先感谢您的帮助! 最佳答案 如果没有关于您正在做什么的更多信息,很难确定,但简单的线程方法可能有意义。假设您有一个处理单个ID的简单函数:importrequestsurl_t="http://localhost:8000/records/%i"defprocess_

python - 在 IPython 中并行化嵌套 for 循环

我的python代码中有一个嵌套的for循环,看起来像这样:results=[]forazimuthinazimuths:forzenithinzeniths:#Dovariousbitsofstuff#Eventuallygetaresultresults.append(result)我想在我的4核机器上并行化这个循环以加快它的速度。查看IPython并行编程文档(http://ipython.org/ipython-doc/dev/parallel/parallel_multiengine.html#quick-and-easy-parallelism)似乎有一种使用map的简单方

python - 如何在 Python 3 中重用进程池进行并行编程

我是并行编程的新手。我的任务是分析数百个数据文件。这些数据中的每一个都将近300MB,并且可以分成许多片。我的电脑是4核电脑。而且我想尽快得到每个数据的结果。每个数据文件的分析包括2个过程。首先将数据读入内存,然后分片成片,这是io密集型的工作。然后,对该文件的切片进行大量计算,这是cpu密集型的。所以我的策略是将这些文件分成4个一组。对于这些文件的每一组,首先,将4个文件的所有数据读入内存,在4个内核中使用4个进程。代码就像,withPool(processes=4)aspool:data_list=pool.map(read_and_slice,files)#len(files)=

python - 并行 I/O - 为什么它有效?

我有一个python函数,它从一个文本文件中读取一行并将其写入另一个文本文件。它对文件中的每一行重复此操作。本质上:Readline1->Writeline1->Readline2->Writeline2...等等。我可以并行化这个过程,使用队列来传递数据,所以它更像是:Readline1->Readline2->Readline3...Writeline1->Writeline2....我的问题是-为什么这样做有效(比如为什么我的速度会加快?)。听起来像是个愚蠢的问题,但我在想——我的硬盘肯定一次只能做一件事吗?那么,为什么一个过程不暂停,直到另一个过程完成?当用高级语言编写时,这样

python - 如何在 python 代码段上应用并行或异步 I/O 文件写入

首先,我们得到以下代码:fromvalidate_emailimportvalidate_emailimporttimeimportosdefverify_emails(email_path,good_filepath,bad_filepath):good_emails=open(good_filepath,'w+')bad_emails=open(bad_filepath,'w+')emails=set()withopen(email_path)asf:foremailinf:email=email.strip()ifemailinemails:continueemails.add(

Python,与 joblib : Delayed with multiple arguments 并行化

我正在使用类似于下面的东西来并行化两个矩阵上的for循环fromjoblibimportParallel,delayedimportnumpydefprocessInput(i,j):forkinrange(len(i)):i[k]=1fortinrange(len(b)):j[t]=0returni,ja=numpy.eye(3)b=numpy.eye(3)num_cores=2(a,b)=Parallel(n_jobs=num_cores)(delayed(processInput)(i,j)fori,jinzip(a,b))但我收到以下错误:要解压的值太多(预期为2个)有没有办法

python - t-SNE 的并行版本

是否有并行版本的t-SNE算法的Python库?或者多核/并行t-SNE算法是否存在?我正在尝试使用t-SNE减少词汇表中所有word2vec的维度(300d->2d)。问题:词汇表的大小约为130000,对它们进行t-SNE花费的时间太长。 最佳答案 是的,有t-SNE的barnes-hutt实现的并行版本。https://github.com/DmitryUlyanov/Multicore-TSNE现在还有一个新的tSNE实现,它使用快速傅里叶变换函数来显着加快卷积步骤。它还使用ANNOY库执行最近邻搜索,默认的基于树的方法也在

python - python 中的并行性无法正常工作

我正在使用python2.7在gae上开发一个应用程序,ajax调用从API请求一些数据,单个请求可能需要大约200毫秒,但是当我打开两个浏览器并在非常接近的时间发出两个请求时,它们需要不止是它的两倍,我已经尝试将所有内容都放在线程中但是它没有用..(当应用程序在线时会发生这种情况,而不仅仅是在开发服务器上)所以我写了这个简单的测试,看看这是否是python中的一般问题(在繁忙等待的情况下),这里是代码和结果:defwork():t=datetime.now()printthreading.currentThread(),ti=0whilei在macosx,corei7(4核,8线程)

python - Scikit-learn:并行化随机梯度下降

我有一个相当大的训练矩阵(超过10亿行,每行两个特征)。有两个类(0和1)。这对于一台机器来说太大了,但幸运的是我有大约200个MPI主机可供我使用。每个都是适度的双核工作站。特征生成已经成功分发。Multiprocessingscikit-learn中的答案建议可以分配SGDClassifier的工作:Youcandistributethedatasetsacrosscores,dopartial_fit,gettheweightvectors,averagethem,distributethemtotheestimators,dopartialfitagain.当我在每个估算器上第