我正在研究一种机器人,它使用的CNN比我的嵌入式计算机(Jetson TX1)可以处理的内存要多得多。我想知道是否有可能(使用极低延迟连接)将繁重的计算外包给EC2并将结果发送回用于Python脚本的结果。如果这是可能的,我将如何处理它以及延迟会是什么样的(不是计算,只是发送和发送)。
答案 0 :(得分:1)
可能:当然是。
您可以使用任何类型的RPC来实现此目的。 HTTPS请求,xml-rpc,原始UDP数据包等等。如果您对延迟和少量数据更感兴趣,那么基于UDP的东西可能比TCP更好,但您需要构建额外的逻辑来排序消息并重试丢失的消息。或者像Zeromq
之类的东西可以提供帮助。
至于延迟:只有你可以回答,因为它取决于你从哪里连接。在距离您最近的区域中启动实例,然后针对它运行ping
或mtr
,以了解往返时间。这是你可以达到的最低限度。您的处理时间是最重要的。
答案 1 :(得分:1)
我认为这当然是可能的。您需要一些脚本或Web服务器来传输数据。以下是我认为您可以实现的目标:
很难给出关于延迟的确切答案,因为您还没有提供足够的信息。确切的延迟高度取决于您的硬件,互联网连接,您要传输的数据量,软件等。如果您只在初始训练集上训练一次,你只需要传递一次权重,因此延迟可以忽略不计。如果您经常在远程服务器上发送数据和培训或进行预测,则延迟会更高。
答案 2 :(得分:0)
我是CENAPAD-UFC(国家HPC中心,塞阿拉联邦大学)的前雇员,所以我对外包计算机电源有一些话要说。
CENAPAD拥有一个庞大的集群,它为学术研究提供计算能力。在那里,教授和学生发送他们的计算和他们的数据,定义输出并喝一两杯咖啡,而集群继续努力工作。经过大量的失败后,操作结束,他们通过ssh检索并返回他们的笔记本电脑。
对于大块计算,您希望最小化任何无用的计算工作。一个这样的事情是在分离的计算机上进行通信。如果您需要知道计算何时结束,请让HPC机器告诉您。
为了有效地计算内容,您可能希望深入了解机器并执行某种分发。我使用OpenMP在同一台机器/线程分发中分配计算。要在物理上分开的计算机之间分配,但接下来(延迟说话),我使用MPI。我在UFC中为另一个部门安装了另一个集群。在那里,研究人员只使用MPI。
也许有些关于分布式/网格/集群计算的内容可以帮助您:
在我看来,你希望使用类似网格的计算,你的个人电脑作为主节点工作,可以调用EC2从属设备;在这种情况下,只需使用从主设备到从设备的通信来发送程序(如果真的需要)和数据,这样主设备就会有另一件与发送数据无关的事情;另外,让奴隶在计算结束时告诉你的主人。