AmazonAWS-面向初学者的python
我有一个计算密集型的程序来做我打算并行化的计算。它是用python编写的,我希望使用该模块。我想得到一些帮助,了解我需要做什么,才能让一个程序从我的笔记本电脑上运行,控制整个过程 就我可以使用什么电脑而言,我有两个选择。一个是我可以通过ssh访问的计算机user@comp1.com从终端(不确定如何通过python访问它们),然后在那里运行实例,尽管我希望有一种更编程的方式来访问它们。似乎如果我运行类型应用程序,它会工作吗 我想的第二个选择是使用AWS E2C服务器。(我想这就是我需要的)。我发现了我从未使用过的,但似乎提供了一个控制AWS系统的接口。我觉得我需要一些东西来在AWS上实际分配作业,可能类似于选项1(?)。我这里有点摸不着头脑 编辑: 让您了解它的可并行性:AmazonAWS-面向初学者的python,python,amazon-web-services,amazon-ec2,python-multithreading,Python,Amazon Web Services,Amazon Ec2,Python Multithreading,我有一个计算密集型的程序来做我打算并行化的计算。它是用python编写的,我希望使用该模块。我想得到一些帮助,了解我需要做什么,才能让一个程序从我的笔记本电脑上运行,控制整个过程 就我可以使用什么电脑而言,我有两个选择。一个是我可以通过ssh访问的计算机user@comp1.com从终端(不确定如何通过python访问它们),然后在那里运行实例,尽管我希望有一种更编程的方式来访问它们。似乎如果我运行类型应用程序,它会工作吗 我想的第二个选择是使用AWS E2C服务器。(我想这就是我需要的)。我发
res = []
for param in Parameters:
res.append(FunctionA(param))
Parameters2 = FunctionB(res)
res2 = []
for param in Parameters2:
res2.append(FunctionC(param))
return res, res2
因此,这两个循环基本上就是我可以发送许多并行运行的
param
值的地方,我知道如何重新组合它们来创建res
,只要我知道它们来自哪个param
。然后,我需要将它们全部分组,以获得参数2
,然后第二部分再次可以并行。仅当希望进程共享内存中的数据时,才需要使用多进程模块。只有在出于性能考虑而必须拥有共享内存的情况下,我才建议您这样做。python多进程应用程序的编写和调试非常繁琐
如果您正在执行分布式.net或seti@home在项目中,即使任务是计算性的,但它们是合理隔离的,您可以遵循以下过程
如果您对使用套接字感到满意,那么使用套接字也会更优雅。您如何定义“计算密集型计算”?过早优化是一个常见的错误。如果您对多线程感兴趣,为什么不先尝试Python的类呢?即使是现在的笔记本电脑也有多核,可以做很多计算。我做了100,4 x 4矩阵乘法~1e7次,我甚至不确定我是否能在多核上做,但尝试一下。所以,我认为线程不会使用更多的核,因为GILyou是对的,线程在这里帮不了你。我在下面粗略描述的方法将是你的出发点。@remudada和evan54,我的错误。因为我还是Python新手,所以我不知道GIL,所以谢谢你。我认为这会起作用,唯一的问题是我需要把所有东西都放在一起进行中间步骤。我编辑这个问题是为了告诉你我的意思谢谢你的回答!我想知道你是否可以提供一些关于我如何从笔记本电脑控制AWS进程的见解,或者我应该在另一个问题中发布这个?理想情况下,通过pythonA单独提问是合适的,因为您需要为此使用web服务。不过我可以告诉你这很容易做到。