织梦可以做英文网站吗,中小型互联网企业有哪些,wordpress 左上角w去掉,wordpress图片托管家庭云服务器高阶应用#xff1a;通过Matlab分布式计算来演示所谓的“家庭云计算”#xff08;非云储存#xff09;(转)Matlab是强大的计算软件#xff0c;这不需要过多介绍了#xff0c;大到航天航空领域#xff0c;小到计算方程式#xff0c;Matlab无处不在。 像是这种…家庭云服务器高阶应用通过Matlab分布式计算来演示所谓的“家庭云计算”非云储存(转)Matlab是强大的计算软件这不需要过多介绍了大到航天航空领域小到计算方程式Matlab无处不在。 像是这种大型的计算工具必然要支持分布式群集计算功能即让多台电脑、服务器协同计算同一数据以实现“人多力量大”的加速效果。 我本人不会使用Matlab但出于对老婆的关心考虑到她常因电脑性能不足而为了一个计算登上数个小时我决心利用家里的电脑资源家庭服务器家庭日用电脑主机来打造一个基本的Matlab计算群集以达到加速效果。而这样的一个布局也正符合了我当初设计的“家庭云”的理念。 有了Matlab云集上网本现在都可以跑大型计算了 第一步安装Matlab及其分布式计算服务MDCE MDCE服务是需要另外购买的学生版不提供盗版基本都包括了。 - 安装Matlab程序的部分我就省略了。安装好以后请运行Matlab我以2013a版本为范例 - 在顶端地址栏部分打开以下路径C:\Program Files\MATLAB\R2013a\toolbox\distcomp\bin 见下图 - 然后分先后运行 !mdce install 以及 !mdce start 注意指令前面的感叹号 此时可以右键点击左边的addMatlabToWindowsFirewall.bat然后选择在Windows资源管理器中打开然后以管理员身份运行。这样的目的是为了打开防火墙中Matlab分布式计算的对应端口。 到这里就算完成Matlab分布式计算服务的安装了。需要注意的是所有将参与该计算群集或使用该计算群集功能的服务器和计算机都需要完成以上操作包括很弱的上网本也要不开启MDCE服务是不能连接计算机群的。 第二步进行机群的配置 光是完成以上安装还不行还要进行配置即把所有可以用的计算机资源都联系捆绑在一起。 · 具体操作是在刚才打开防火墙的批运行文件目录下C:\Program Files\MATLAB\R2013a\toolbox\distcomp\bin以管理员身份再运行admincenter.bat文件然后就会看见下图 当然我们首先点击那个“Add or Find”然后被要求输入主机名或相应IP地址如果有多台主机则需要重复此项操作将其全部加入 完成后结果如下 现在我有三台四核CPU电脑在计算机群内且都开启了MDCE服务接下来我要做的就是建立一个Job然后选择开启的总线程然后做一个示范性计算。 · 建立Job就是点上图中间部分左侧的Start · 然后随便写一个名字我用Job1 · 然后选择由哪台电脑作为主机来发起该计算 见下图 然后设置要开启的总线程workers由上图可见三台四核CPU主机一共可以提供12个workers即12条线程同时启动进行Matlab并行计算。 这里要说明一下的是“核心”是指电脑的物理核多线程不算核心譬如Intel i7 四核8线程CPU只能作为四核对待只能提供4个worker而AMD的FX八核处理器由于是物理核则能提供8个worker 还有一点服务器集群中的worker必须要统一即大家都必须使用同等数量的worker来协同工作不能某一台性能强点就开启四核另一台弱点只开启两核这样不行所以请不要把双核CPU、四核CPU混在一起作为一个集群除非你只打算在四核主机上开启两个worker。 以上图为例我勾选了全部三台主机作为计算集群然后每台开启四个核即四个worker然后总共有12个worker将为我同时进行计算。 到这里配置部分就完成了。接下来要在Matlab操作机器上调用以上配置。Matlab称之为Cluster Profile。 第三步Matlab客户机调用集群 回到Matlab主程序打开下图显示的Manage Cluster Profiles 打开上述管理器后默认情况下只有一个local档案这是给Matlab开启本机多核计算的档案不要删除了。我们直接点击那个Discover Clusters就可以了不需要手动配置选择On your network本地局域网内 完成后看到下图 我用1和2表明了先后要做的两件事1.给档案改名右键然后选择改名我改为cluster。2.检测一下是否一切正常 全部测试通过如果你有某项测试未通过可以点击感叹号看到具体原因很多时候是防火墙造成的注意执行前面提到的开启防火墙。如果实在是弄不清防火墙设置可以索性关闭了 到这里就大功告成了演示一下开启12个worker进行计算 matlabpool open cluster; 是调用cluster配置文件开启12个worker的指令右下角显示的是成功开启的worker数量。 matlabpool close; 是关闭分布式计算/并行计算的指令建议每次用完都执行一次。 因为我不会具体的matlab代码所以没法演示一段12 worker一起计算的表现。根据老婆之前调用8个worker服务器家中主电脑的经验仅把for循环改为parfor循环具体参见Matlab官方指导有关如何运用并行计算原先一个小时的计算现在能提速2.5倍甚至更多。 最后关于一些疑问和解答 1. 首先要解释一下以上Matlab的分布式计算和博客主题“家庭云”的关系。很多网站的文章在提到“家庭云”的概念时总是暗示甚至错误地把“云技术”与“云储存”划上等号。“云技术”说白了是服务器的利用而在服务器端存储文件只是云技术的一部分。Matlab的分布式计算正巧可以帮助理解云计算的核心概念而在家中架设一个实时开放的Matlab服务器这就是“家庭云计算”的典型表现超越了我之前云储存的应用范围。 2. 这个云目前为止只是在家中局域网的范围服务在学校在公司怎么使用家中的云 如果有看过前面的博文会知道家庭云最基本的一项功能就是提供VPN连接。我没有打算把Matlab服务器公开到互联网上所以端口不用在路由器上映射如果学校或公司电脑需要用到家里的云VPN连接回家就好了所有IP都是固定好设置好的与在网内使用服务无异。 3. Matlab分布式计算的防火墙端口设置是比较麻烦的。根据官方资料如果线程多了所使用的端口也会相应增加。也就是说8个worker所需要打开的端口和12个worker所需要打开的端口是不一样的所以上面不会设置防火墙的网友可以索性把它关闭了。 4. 上网本的最高阶利用 上网本是很弱的设备勉强跑个Windows就可以了谈运行Matlab简直笑话但是有了云集Matlab可以在上网本上运行任何计算。这里需要注意的是在配置上述第二步骤的时候上网本千万不要加入到群集中只勾选服务器就可以了。上网本所需要做的就是把代码和数据从本机发送给服务器然后计算的工作由服务器处理。 本文出自 “www.DIYPCs.com” 博客请务必保留此出处http://cnbeta.blog.51cto.com/1234897/1193348 完整示例clear all; % 寻找资源。 jm findResource(scheduler, type, jobmanager, name, myJM,LookupURL, 192.168.0.100); % 使用刚才找到的资源建立一个工作 job createJob(jm); % 设置该工作的文件关联让所有 workers 都可以找到原程序文件,需要在Client 上设置共享文件夹。 set(job, PathDependencies, {\\192.168.0.101\matlab_code\,/mnt/}) % 另一种方法把用到的原程序文件传给所有 workers。 % set(job, FileDependencies, {hm.m});N 5;M 4; % 建立 4 个任务每任务都是算 hp(M, N)。 createTask(job, hp, 1, {{M, N}, {M, N}, {M, N}, {M, N}}); % 提交工作给 jobmanager。 submit(job) % 等待所有 workers 都把任务做完。 waitForState(job, finished) % 取出计算结果。 results getAllOutputArguments(job); % 销毁 Job释放资源 destroy(job);