精华内容
下载资源
问答
  • 随着硬件价格的大幅降低,企业采购各种计算服务器也很普遍,最常见的的类型就是刀片服务器,刀片服务器的大幅度推广给安装工作带来了新的挑战。 如图,如果把刀片服务器打开来,一般分为上边几个组成部分。一个管理...

    http://blog.e-works.net.cn/514970/articles/219213.html

    前言:技术工程师的一项工作就是装机,看似简单,其实有时候蛮复杂的。尤其是现在,高性能计算机越来越普遍的今天,有时候安装一台机器甚至都需要跑个好几趟。Windows机器很容易,一路Next问题不大,Linux可就麻烦了,回想第一次怀着忐忑的心情杀向客户,安装linux系统,插上U盘以后,居然发现系统找不到U盘,急得满头大汗,到处电话求助,才知道Linux需要Mount一说,还好林博士宽宏大量,没把我当场撵出去。如今,安装的高性能机器少说也有几十台了吧,虽说对Linux还是有些发怵,不过,难题吗,还是一般都能解决的。 本文读者只限于Abaqus用户,其他用户可以参考。

    在传统的linux并行计算中,一般用户都是自己采购几台配置相同的主机,安装linux

    redhat系统,搭上网线,一个小型的Cluster就搭配好了。这个架构非常简单,容易搭配,软件安装起来也很方便,只需要将软件安装在每台机器的同一个位置,配置好RSH

    SSH服务即可。随着硬件价格的大幅降低,企业采购各种计算服务器也很普遍,最常见的的类型就是刀片服务器,刀片服务器的大幅度推广给安装工作带来了新的挑战。

    如图,如果把刀片服务器打开来,一般分为上边几个组成部分。一个管理节点,几个计算节点,计算中心还有存储节点等等,通过网络交换机连接,另外还有电源管理系统,用户本地计算机等。为了保证信息的安全,用户一般都不能直接登录到计算节点,必须先登录到管理节点,通过管理节点再SSH登录到计算节点,进行所有操作。当然,除了软件安装和用户管理需要登录到计算节点外,通常情况下,普通用户是没有必要登录到计算节点的。

    管理节点一般都拥有两块或者两块以上的网卡,一块和外面的操作用户联系,一块和下面的计算节点联系。在申请license的时候,申请和外面联系的网卡Mac地址即可。

    管理节点会虚拟一块网络硬盘(NFS)和计算节点共享,这块网络硬盘可能是在管理节点上,也可能会在某个单独的存储节点上。虚拟出来硬盘以后,所有的计算节点的同一位置都可以看到这个文件夹。如需要查看挂载位置可以计算节点下查看

    Exports文件。 命令行是:

    或者 输入命令

    showmount

    即可查看网络硬盘的挂载情况。这种结构给我们的工作带来简化的同时,也带来一些问题。带来的便利就是没有必要每台机器都安装了,只需要安装一次即可,环境变量也只需要配置一次。

    第一步:安装Abaqus

    安装软件的时候需要注意的事项是:安装product的时候,license host 一定要写

    hostname,而不能以IP地址代替。要不然子节点在计算的时候会找不到license文件,因为子节点和管理节点连的网卡是不一样。

    顺利安装以后,最好通过环境变量配置,让linux系统能够认识Abaqus的命令,这样对于用户来收,没有必要每次提交任务的时候都需要写绝对路径。配置办法:

    Vi /etc/profiles

    编辑这个文件,在文件中加入

    export PATH="$PATH:/share/abaqus/610-2/Commands"

    保存,重新登录即可。管理节点和计算节点,每一台都需要配置。

    安装的时候可能也会因为因为某些系统补丁包没有安装完全而出现无法安装的情况,大家可以上http://www.simulia.com/support/v610EF/v610EF_sysinfo.html 下载相应系统的检测工具,查看需要哪儿RPM,安装即可。

    第二步,确认RSH通信协议的存在

    现在RSH由于安全性问题已经不再是标准linux搭配了,由SSH所代替。倒是Abaqus的并行还是以RSH协议为主。SSH也可以,

    mp_host_list

    =[['compute-00-01',8],['compute-00-02',8],['compute-00-03',8],['compute-00-04',8],['compute-00-05',8],['compute-00-06',8],['compute-00-07',8],['compute-00-08',8]]

    这一步很多时候,都可以要求硬件提供商配置好。

    第三步,确认文件夹的可操作性。

    理论上,这个时候就可以进行并行计算了。但是运气好,你可能会成功,运气不好,Abaqus会通过预处理pre程序,但是在计算的时候会毫无道理的退出,而且在sta和msg文件中没有任何提示错误的信息。为什么呢,这是因为文件夹属性问题。Linux对于文件和文件夹的属性非常详细,分为“可读,可写,可执行”,另外,组和用户还不一样,安装的软件时候最好使用最高权限的Root用户。

    但是还会存在一些问题。由于提交任务的时候是通过管理节点提交的,也就是计算生成的文件夹和文件都是有管理节点所创建的。由于计算节点在计算的时候会在当前工作目录(/share下的某文件夹)写入一定的数据,所以必须要求当前工作目录对于计算节点也是可写的。

    但是,很多情况下,如果是通过管理节点登录SSH到计算节点下,会发现一个在管理节点创建的文件夹对于计算节点并不可写,就算SSH用的是Root用户!但是你在查询文件夹属性的时候明明看到这个文件夹是可写的。

    这是由于网络硬盘(NFS)的协议所引起的,解决这个问题的办法就是让登录计算节点的ROOT用户拥有真正的Root权限。编辑管理节点的

    exports文件:

    vi /etc/exports /Share *(rw,no_root_squash) /home/test 192.168.0.100(rw)

    加入no_root_squash的意思是如果用计算节点登录共享目录,如果是 root 的话,那么对于这个贡献目录来说,他就具有

    root 的权限!

    第四步,修改环境变量

    设置ABAQUS环境变量,进入abaqus/6.10-2/site目录,编辑abaqus_v6.env文件:在mp_rsh_command下面加一行

    mp_host_list =[[‘PCnode1’,1],[‘PCnode2’,2],[‘PCnode3’,3]]

    这个就是调用计算机及其Cpu个数的次序了。

    第五步,计算。

    拼RP的时候了,如果你的RP够好,应该不会再出现叉子了。

    PS:在管理节点提交认为的时候,如果只调用一个CPU,那计算程序将会在管理节点上运行。只有2个或者超过2个以上的CPU,才会调用mp_host_list里面的计算节点。

    关于并行计算的效率,大家可以上http://www.simulationclusters.com上查询Abaqus不同版本不同算例的加速比。

    展开全文
  • 本文件是用于MATLAB并行服务器AWS批处理的并行计算工具箱插件的安装程序文件。 Installer file for Parallel Computing Toolbox plugin for MATLAB Parallel Server with AWS Batch. 这些示例文件使用通用的调度程序...

    在这里插入图片描述

    本文件是用于MATLAB并行服务器AWS批处理的并行计算工具箱插件的安装程序文件。

    Installer file for Parallel Computing Toolbox plugin for MATLAB Parallel Server with AWS Batch.

    这些示例文件使用通用的调度程序接口,使用户可以使用AWS批处理向MATLAB并行服务器提交当前完成的工作。

    These example files use the generic scheduler interface to enable users to submit jobs to MATLAB Parallel Server with AWS Batch.

    安装以后,在调度程序准备好使用之前,您需要执行进一步的步骤。

    Once installed, you will need to perform further steps before the scheduler is ready to use.

    有关设置这些调度程序的详细信息,请参阅安装中的自述文件。

    For more information on setting up these schedulers, consult the README documentation within the installation.

    有关通用调度程序接口的详细信息,请参阅以下网站:

    For more information on the generic scheduler interface, go to:

    https://www.mathworks.com/help/matlab-parallel-server/configure-using-the-generic-scheduler-interface.html

    有关并行计算工具箱的详细信息,请参阅以下网站:

    For more information on the Parallel Computing Toolbox, go to:

    http://www.mathworks.com/products/parallel-computing/

    有关MATLAB并行服务器的更多信息,请参阅以下网站:

    For more information on the MATLAB Parallel Server, go to:

    http://www.mathworks.com/products/matlab-parallel-server/

    从操作系统或MATLAB中打开.mlpkginstall文件将启动您所拥有版本的安装过程。

    Opening the .mlpkginstall file from your operating system or from within MATLAB will initiate the installation process for the release you have.

    .mlpkginstall文件适用于R2019b及更高版本。

    This .mlpkginstall file is functional for R2019b and beyond.

    展开全文
  • 服务器并行计算平台 C#原代码(模拟超级计算机),通过.net remoting方式和数据分片技术,只需一定数量服务器或PC和连接网线和100口交换机组网即可支持100台服务器或PC做并行计算,数据在每台服务器或PC上分包计算...
  • 关于逻辑服务器并行计算的思考

    千次阅读 2012-12-16 13:59:37
    注:本文纯属个人思考过程的记录,仅供参考,估计有众多不当之处欢迎指正。  服务器并行化,对我们现代的程序员来说... 并行计算的最终形态我认为是——可以通过增加硬件实现几乎无限的服务器负载。  从

            注:本文纯属个人思考过程的记录,仅供参考,估计有众多不当之处欢迎指正。


            服务器并行化,对我们现代的程序员来说有着极强烈的吸引力。分布计算、云服务、高并发数据库、虚拟机、无缝大世界网游服务器,等等,所有这些热门技术,都指向了同一个目标:并行计算。


            并行计算的最终形态我认为是——可以通过增加硬件实现几乎无限的服务器负载。


            从需求上来看,但凡是弱互动——即反馈延迟可以很高的服务,比如静态网页、博客、论坛——都可以很好的做并发计算,把负载分摊在多个服务器上。但凡是强互动——实时网络游戏、社交游戏、网页游戏等等——都会在并发方面阻碍重重。


            原因很简单,从实现服务器并发的基础上看,无论多么庞大复杂的系统,最终都被分解为——数据库读写、网络传输。仅此而已。数据库的读写和网络传输,相比本地内存读写太过漫长了,在某些应用中显得不切实际。


            我本来想广泛针对各种应用需求来谈并发,写到这里我发现实际上并发难度最大的需求基本只有游戏(或者说广义上的游戏),下面只思考游戏服务器好了。


            Q:一个最大支持3000玩家不可并发的服务器,和一个单进程800玩家可并发的服务器,你选择哪个?


            我现在觉得,如果是小团队做移动端休闲(小型)网游,那么前者是非常棒的选择。如果实时互动较少,那么游戏会变得和常规网游不太一样——短连接,没有明显的登录、下线的分界线。这种情况下最大承载人数就不是“在线”人数,而是比如说“半小时内活跃用户”,可周旋空间很大,可优化空间也很大,唯一有要求的只是服务器内存而已。而从阿里云服务器提供的价格表来看,内存还是比较便宜的。每个玩家20k数据的话,1G内存可以放下5万玩家。顺便一提阿里云单机最大可以提供32G内存。如果你的服务器代码能充分利用内存,那么从数字上来看你已经解决了一切问题,因为一个百万活跃用户的应用足够让你发家致富笑傲江湖了。


            对一个正常的“网游”——有漂亮的画面和几十几百人同屏玩耍的那种——来说,服务器承载人数充分受到CPU制约,不是简单的内存问题了。这种事情很复杂,但是这是个好事,因为它非常适合几十人的大型网游团队来做,解决这个难题的过程中有很多的挑战和机遇,足够发挥优秀程序员的才干,经理能少操一份心。


            解决大型网游并行处理,有几种常见的技术——按场景划分多服务器职责外加全局和关系服务器,共享内存。有很多国内做的很好的游戏比如《御龙在天》,他们采用的技术都是保密的。所以更得感谢云风,他介绍的skynet值得好好了解:

    http://blog.codingnow.com/2012/09/the_design_of_skynet.html


            skynet给了我很大启发,游戏的高性能并行基础,很可能就是这么简单——尽可能的让多线程、多进程协作起来,这样形成的系统简洁而又高效。满足性能要求的同时简单到不易产生BUG。


            另外有一篇coolshell.cn上面的讲异步逻辑的文章找不到了。

            

            被云风的博客和一些其他人“荼毒”久了,对大型服务器架构我有两个观点:

            1、游戏服务器并发,应该尽可能把数据传输放在更快的路径上——能读写内存,就不使用pipe;能使用pipe,就不做网络传输;能网络传输,就不读写DB。所以尽可能把有关联的任务让一个进程分线程去做,一个进程扛不住就单机多进程。一般来说,8核服务器在CPU用光之前还是能做不少事情的。

            多线程可以方便的读写同一块内存,单机多进程可以用共享内存或者使用pipe。无论如何比网络传输能快至少一个量级。用网络传输就会有延迟,延迟哪怕20ms都迫使你不想做成阻塞式逻辑,不阻塞的话要么多线程要么协程要么异步,无论怎么做都会增大逻辑编写难度埋下bug。如果用阻塞的pipe是不是心里舒坦一点呢?

            这块写的有点想当然了,没有测试过,看网上别人的测试,UNIX SOCKET和pipe的效率在同一个数量级上,pipe稍快。但是都是本机测试,如果真的跨主机收发数据肯定还是慢不少。

            当然也会有人嫌这种做法部署起来麻烦——必须保证某几个进程在同一台服务器上。我这只是纯技术层面的探讨。

            值得一提,一般来说共享数据离不开拷贝(按我的经验很少有直接拿共享内存开玩笑的,写乱了会很糟糕),而C/C++处理拷贝很简单易行,基本可以从原始内存摇身一变恢复成一个结构体。而python要用到pickle的方法,总是逃不了要反复新建PyObj。


            2、游戏服务器,每一个服务器都要保证自身逻辑的正确性和健壮性。任何一个逻辑过程都是序列化执行而且明确的。

            我是这个意思:每个问题都有唯一的答案。比如你想找一个玩家,他肯定在某一个场景服务器里,如果他不在场景里,那么全局服总会知道他在哪。

                    再比如,某个服务器A以为A和B是好友,服务器B认为A和B不是好友,由于服务器同步问题,这种情况有可能出现。但是总有一个全局服或者社交关系服务器,知道A和B到底是不是好友。

            复杂一点,如果全局有一个计数器G=10,服务器A想把它加1,服务器B也想把它加1。如果A和B直接set G=11,那么肯定是不对的,G应当是12而不是11。A和B应当发送INC 1指令,这样无论哪个指令先到达G最终都会等于12。如果附加一个条件——G最大值是11,超过11的增加会判定为失败。怎么解决呢?

            我认为千万不要把这个问题搞的太复杂,把并行计算技术里的一些投票算法拿到这里用。可以这样解:指定一个协议INC,参数为(当前值,增加值),某个时刻 A发送 INC (10,  1),B发送INC (10, 1)。之后B的包先到达了,全局服判定G==10,ok,有权增加1。然后给服务器B返回最新结果(成功,G=11)。后来A的包到达了,全局服发现G不等于10,则A的请求失败,全局服把最新结果(失败,G=11)发给A,之后怎么处理是写具体游戏逻辑的人负责的,要从游戏设计上才能解决——比如通知玩家为什么失败。


            说到最后总结一下,游戏服务器提升负载能力的关键是——尽可能压榨单主机性能,尽可能避免网络并行计算。




    展开全文
  • 初识并行计算

    2020-06-15 20:09:55
    什么是并行计算 通过多个处理器一起工作去解决某个问题。传统程序编写后是串行计算的,而并行计算则需要通过多个计算资源解决计算问题。 并行计算与分布式计算的区别 并行计算:同一时间发生多项不同活动,同一应用...
    • 什么是并行计算
      通过多个处理器一起工作去解决某个问题。传统程序编写后是串行计算的,而并行计算则需要通过多个计算资源解决计算问题。
    • 并行计算与分布式计算的区别
      并行计算:同一时间发生多项不同活动,同一应用规模大而需分散到多个核心或处理器上,通常用于科学计算
      分布式计算:不同活动跨越多系统或服务器,更关注并发和资源共享,通常用于商业领域
    • 为什么需要并行计算
      1.节省计算时间;
      2.解决大规模问题,特别是单机无法解决的问题
      3.更好地利用底层并行硬件
    • 并行计算机和模型分类
      1.从处理单元分类:
      SISD:串行计算机,一个CPU时钟周期只能处理一条指令,同时只能输入一条数据,如单核CPU
      SIMD:一个时钟周期所有处理单元执行相同指令,不同的处理单元可以处理不同数据,如GPU
      MISD:多个不同处理单元独立在同一数据上执行不同指令
      MIMD:每个处理器可以执行不同指令和处理不同数据,如多核CPU
      2.从存储器分类
      共享存储器:具有多核处理器的单台计算机,如SMP
      分布式存储器:连接多台计算机形成无共享存储的计算平台,如集群、超级计算机、数据中心。通过通信网络连接各处理器内存,每个处理器有自己的内存或地址空间,一个处理器对内存的改变不会影响其他处理器的内存,软件程序负责定义数据在处理器间通信的方式和时机。
    1. 从编程模型分类
      共享存储编程模型:一般用于共享存储机器;单进程有多个并发执行的线程;每个线程有本地数据,但共享资源;线程间通过全局内存通信;线程可以创建或销毁,但主程序一直存在;如Pthread, OpenMP。
      消息传递编程模型:一般用于分布式存储机器;计算过程中有一组任务,每个任务都有自己的本地内存;多个任务可驻留在相同的物理机或跨越不同的物理机;任务间通过发送接收消息来交换数据;如MPI。
      编程模型严格来说不受机器或内存体系架构的限制,消息传递编程模型可以支持共享存储机器(如在一台服务器上的MPI),共享存储编程模型也可用于分布式存储机器(如分区全局地址空间PGAS)
    展开全文
  • 并行计算

    2017-11-24 17:15:00
    卷积层:计算量大,参数...要完成数据并行需要做参数交换,通常由一个参数服务器(Parameter Server)来帮助完成。在训练的过程中,多个训练过程相互独立,训练的结果,即模型的变化量ΔW需要汇报给参数服务器.数据...
  • linux服务器实现CFX分布式并行计算的方法: 本人使用环境 系统 CentOS 6.5 服务器集群 采用Rocks集群系统 Ansys 15.0 Ansys安装目录 /share/apps/ansys_inc/v150/ 1、编辑 hostinfo....
  • 一、说明前一阵子我在简书上发布了有关matlab的并行计算方法之后(Matlab并行计算方法(下)),大家对这个方式有不少疑问,实际在运行过程中还是问题不断,那么在这里我会把一些运行时必要步骤补上,供大家参考。...
  • 这样我们可以将我们程序分摊到多个计算机CPU中去计算,在过去并行化需要线程的低级操作,难度很大,在.net4.0中的增强了对并行化的支持,使得这一切变得非常简单 。本次我从以下几个方面大家讲以下.NET 并行 1. ...
  • 1 进入linux服务器:解压openmpi: tar -xzvf openmpi-2.1.0.tar.gz 进入解压后的文件夹: 直接指定安装文件夹并指定编译器: ./configure --prefix=/opt/openmpi/2.1.0/intel CC=icc CXX=icpc FC=ifort F77=ifort --...
  • -hostfile:指定计算节点,文件格式如下: node1 slots=8 node2 slots=8 slots=8代表可在该节点上执行8个进程,也可将node1和node2分别写8行。 mpirun -np 1 --allow-run-as-root --prefix /usr/local/openmpi -host...
  • 分布式并行计算框架MapReduce

    万次阅读 2019-11-13 09:04:59
    什么是并行计算框架? 是指为更快的计算某项任务或某项工作,将计算程序分发到多台服务器上,使每个服务器计算总任务的一部分,多台服务器同时计算的框架。 什么是分布式计算? 分布式计算:是一种计算方法,是将该...
  • 并行计算是一台计算机,配备有多处理机,多处理机之间进行合同协作计算,最终结果由一台计算机处理 分布式计算是多台联网的计算机,有各自的主机和处理器,通过网络分配共享计算任务和计算信息 云计算,指计算机...
  • matlab开发-并行计算工具箱PlugInformatlabParallelServerWithPBS。使用PBS向Matlab并行服务器提交作业
  • matlab开发-并行计算工具箱PlugInformatlabParallelServerWithSlurm。使用slurm向matlab并行服务器提交作业
  • 分布式计算和并行计算的关系zz 先说分布式计算和并行计算的异同: 解决对象上:都是大任务化为小任务,这是他们共同之处。 但是分布式的任务包互相之间有独立性,上一个任务包的结果未返回或者是结果处理...
  • matlab开发-并行计算工具箱PlugInformatlabParallelServerWithIBmplatFormLSF。使用IBM平台LSF向Matlab并行服务器提交作业
  • 先说分布式计算和并行计算的异同: 解决对象上:都是大任务化为小任务,这是他们共同之处。 但是分布式的任务包互相之间有独立性,上一个任务包的结果未返回或者是结果处理错误,对下一个任务包的处理几乎没有什么...
  • 分布式并行计算框架MapReduce详解

    千次阅读 2019-11-13 08:05:35
    什么是并行计算框架?什么是分布式计算?理解MapReduce思想MapReduce的步骤 什么是计算框架? 是指实现某项任务或某项工作从开始到结束的计算过程或流的结构。用于去解决或者处理某个复杂的计算问题 什么是并行计算...
  • matlab_集群搭建及使用.pdf MATLAB并行计算简介(是几个机子并行的).ppt MATLAB并行运算和分布式运算的基本操作-图解.pdf 家庭云服务器高阶应用:通过Matlab分布式计算....DIYPCs.pdf
  • 并行计算是一台计算机,配备有多处理机,多处理机之间进行合同协作计算,最终结果由一台计算机处理分布式计算是多台联网的计算机,有各自的主机和处理器,通过网络分配共享计算任务和计算信息 云计算,指计算机通过...
  • 本帖最后由 蓝云风翼 于 2013-12-18 17:...并行计算工具箱 gpuArray,查看支持gpuArray的函数methods('gpuArray')b.已经支持GPU的一些工具箱c.使用mex方式 http://www.matlabsky.com/thread-33511-1-1.htmld.使用产...
  • 先说分布式计算和并行计算的异同: 解决对象上:都是大任务化为小任务,这是他们共同之处。 但是分布式的任务包互相之间有独立性,上一个任务包的结果未返回或者是结果处理错误,对下一个任务包的处理几乎没有什么...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,544
精华内容 617
关键字:

并行计算服务器