我是Matlab的常客.对于CPU密集型任务,我需要让我的PC运行几个小时(或几天)模拟一些东西,这是一个痛苦,因为我需要随身携带它.
您是否知道允许用户根据需要运行远程实例的公共网站/公司,然后收取相应的费用?我不关心它在哪里,或者使用了多少核心或任何东西,我只想运行一些.m文件,然后检索输出变量.
我认为实施起来并不太难,但我找不到(我已经google了很多)有人向我推销这项服务.我知道有些大学有这方面的服务器,但它们是私人的.
任何有关这方面的帮助将非常感激.
谢谢,Germán
abc*_*bcd 17
您可以尝试在由康奈尔大学和普渡大学联合运营的Teragrid上获得MATLAB帐户.它是由NSF资助的项目,免费提供对研究人员(学术和工业)的访问.您只需填写一份申请表,就可以在一两天内完成帐户设置.
我已经将Teragrid用于我的项目,我对它完全满意.它们拥有良好的基础架构,64个服务器,每个服务器8个核心,总共512个核心处理能力和16 GB RAM /服务器.
但是,请注意,您必须彻底更改工作流程并切换到编写分布式作业而不是并行(或串行作业),这在初始阶段可能很痛苦(如果您不习惯).他们确实为此提供了有用的资源.
使用共享资源时,同样重要的是"挂锁时间"的概念,这也与您的工作停留在队列中的时间直接相关.挂起时间基本上是单个任务运行所需的时间.为了设置足够的挂钟时间,你必须是错综复杂的熟悉你的代码的复杂性(操作次数等),所以你不要低估所需的时间(如果他们超过挂钟时间任务结束!).另一方面,你不想太宽松并选择较长的时间,因为那时你的工作将在队列中停留更长时间.换句话说,你不能只设置7天的挂机时间只是为了安全,因为调度程序会让你等到资源可以被释放7天(一旦你访问核心,它只是你自己和你的) ,这是永远的.
Amr*_*mro 10
正如我在评论中提到的,云计算似乎正是您所寻找的.
除了我已经链接的论文之外,我还有另一个解决方案,它不涉及购买在云上安装MATLAB的额外许可证.
相反,它将您的程序编译为独立的可执行文件(这需要您现有平台上的MATLAB编译器).此可执行文件以及可免费使用的MCR运行时是传输到云的唯一内容.
确切地说,作者正在使用套接字来构建一个位于云中的服务器,用于监听连接.这是编译成可执行文件的部分,只有MCR作为依赖项.它接受输入,EVAL使用它,并在完成后发回结果.
客户端(您身边的MATLAB脚本)连接到服务器,并发送命令以与所需的序列化数据一起运行.这本身就是可扩展的,因为您可以根据需要在尽可能多的实例上运行服务器(实际上可以承受的数量),并简单地将工作分开.显然,将程序重写为可破坏的任务需要一些工作.
我认为这正是MATLAB分布式计算解决方案正在做的事情,但是抽象出了所有的血腥细节......检查一下它是否符合您的需求:使用Amazon EC2加速matlab优化