随笔分类 -  Linux

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 22 下一页
摘要:比如C的代码(文件名:test.c)如下(注意C源代码里不能有main函数,编译时也一定要加-c开关):#include<stdio.h>#definesub1sub1_voidsub1(int*num){printf("%d\n",*num);}Fortran的代码(文件名:testf.f)如下(Fortran调用C的sub1函数):programmainimplicitnoneintegeraa=10callsub1(a)end这样就OK了!编译的时候,这样操作:g77-ctestf.f-otestf.ogcc-ctest.c-otest.og77test. 阅读全文
posted @ 2011-05-04 13:52 super119 阅读(695) 评论(0) 推荐(0) 编辑
摘要:这两个指标出现在top500的机器评测参数表中,具体含义如下: Nmax:Linpack测试求解最大问题规模,取值有个经验公式:所有内容总量(换算到Byte)/8再开根号 NHalf:这个指标很有意思。这个指标指的是:当Linpack求解的问题规模为NHalf时,出来的测试结果正好是集群理论峰值(Rpeak)的一半。为什么要设这个指标呢?因为这个指标可以反映整个系统的bandwidth和interconnect的性能指标。一般来说,这个NHalf的值越小越好,一般在Nmax的十分之一以下为好。可以这样理解:问题规模NHalf越小,机器还能跑出Rpeak一般的Flops来,就说明这个机器的带宽很 阅读全文
posted @ 2011-05-04 13:47 super119 阅读(567) 评论(0) 推荐(0) 编辑
摘要:前面讲过,对于不同数据类型的数据和非连续的数据来说,我们可以用新建一个数据类型的方式来将这些数据做整体发送。另一种解决方案就是,将这些数据打包发送,然后在接收端再解包。这种方式就是标题的这两个函数的作用,他们就简单的很多,因为逻辑非常单纯。这里有示例代码: 有人要问,既然这个能解决问题又简单,为什么MPI还要定义新数据类型这个难懂又麻烦的东东呢?我的理解是这样的:MPI给我们一个机会,让我们可以定义新的数据类型,这样第一,能让我们的代码逻辑性更好,可读性更强;第二,对于MPI2所定义的并行文件操作来说,有了自定义数据类型的支持,无疑能给文件的读写带来极大的便利(我们可以将一堆无关的数据重新定义 阅读全文
posted @ 2011-05-04 13:44 super119 阅读(638) 评论(0) 推荐(0) 编辑
摘要:我们都只到,MPI_SEND会为我们作发送数据缓冲区申请和管理的工作,但是,如果这个工作失败了,那么,MPI_SEND就会永久阻塞。当然,这种情况只限于MPICH,LAM和这个不太一样,下面将提到。 这种情况一般都会发生在机器内存告急的时候,此时,我们调用MPI_SEND,他会先为我们申请一块buffer,然后发送,如果这个buffer申请失败,那么,在MPICH中,MPI_SEND就会block。特别是在这种情况下就更容易发生:我们在一个进程中,用for循环做很多次MPI_SEND,然后,在另外一个进程中,做很多次对应的MPI_RECV,这种操作,是一种危险的操作,因为如果此时for循环中有 阅读全文
posted @ 2011-05-04 13:39 super119 阅读(1093) 评论(0) 推荐(0) 编辑
摘要:在应用程序运行中,我们可以通过以下方法查看HCA网卡的端口流量信息,步骤如下,供参考: 1)清除正在使用端口的状态,假定使用端口为port1 #cd /proc/iba/mt23108/1/port1/ #echo > stats 2)运行应用程序 3)察看port1的状态,使用命令: #cat /proc/iba/mt23108/1/port1/stats 或直接使用命令"p1stats" 另外,我们可以保存IB端口的接收发送数据流量信息,并且通过分析这些数据实现对应用程序调优。 阅读全文
posted @ 2011-05-04 13:38 super119 阅读(411) 评论(0) 推荐(0) 编辑
摘要:rsh可以用来执行一个command,如rsh localhost hostname 如果最后的command这个参数为空,那么rsh就会去调用rlogin,结果是-直接得到一个shell 默认情况下,这两个东西执行的时候都是需要密码的,但可以通过配置“信任主机”的方式,来使得这两者运行时不需要密码 具体配置如下: 1、编辑 /etc/xinetd.d/rsh 和 /etc/xinetd.d/rlogin 这两个文件,将其中的 disable=yes 都改成 disable=no 2、/etc/init.d/xinetd restart 3、编辑信任主机。这里有两个途径:(1)编辑 /etc/ 阅读全文
posted @ 2011-05-04 13:38 super119 阅读(633) 评论(0) 推荐(0) 编辑
摘要:1、VASP4.6 是量子化学计算的一个商业软件,这里是源码包。来自奥地利。这个软件也可用在物理系,做分子动力学等分析。 2、首先声明一点:VASP4.6无法在Intel Fortran Compiler 8系列上编译通过。会报一个fortcom的内部错误,这是编译器的bug。 3、VASP建议在Intel Fortran Compiler V7上编译,由于手上没有这个版本,所以,只好拿了一个最新的Intel Fortran Compiler 9.0来测试(装完编译器后记得source ifortvars.sh和写一个简单的f90程序来测试一下)。 4、首先tar开两个包,自然先装vasp.4 阅读全文
posted @ 2011-05-04 13:37 super119 阅读(990) 评论(0) 推荐(0) 编辑
摘要:SilverStorm的Infiniband的设备支持两种通讯协议:一种是IB Native,在MPICH编译的时候,体现在configure的时候,指定device=vapi;一种是IP over IB的方式,这种在MPICH编译的时候,device就是以太网了,因为上面跑的就是IP和TCP这些东西。 所以,很显然的是,使用IB Native方式的通讯方式,Infiniband的性能才能得到发挥,否则无法发挥出来。也就是说,所有的并行应用,如果用IP over IB方式的MPICH,那么肯定都是可以跑的(不用MPICH的应用不谈,要具体问题具体分析),但性能肯定要打折扣;用IB native 阅读全文
posted @ 2011-05-04 13:36 super119 阅读(1721) 评论(0) 推荐(0) 编辑
摘要:首先是编译器,这个不多说了,谁都知道。 更重要的是Intel的数学库,称为Math Kernel Library-MKL 还有,Intel有一套Cluster Tools,里面包含了Cluster MKL、ITC、ITA、Intel MPI等。 我们都知道,高性能计算大多用于工程计算,目前的工程计算主要需要这样几个东西:FFT(快速傅立叶变换)、LAPACK(线性代数Package)、BLAS(基础线性代数函数库)、SCAPACK(高扩展的LAPACK,主要用于分布式内存体系结构,也就是Cluster结构的并行化的LAPACK)。这些东西都有免费的开源实现,如FFTW(MIT做的FFT)、LA 阅读全文
posted @ 2011-05-04 13:35 super119 阅读(2482) 评论(0) 推荐(0) 编辑
摘要:机器只有一台,有两个CPU,各为Dual Core的2.8G的Nocona 测试操作系统为RedHat Enterprise Linux AS3 Update 3,一定要用这个版本,试了其他版本,都有问题!x86_64的版本普遍有一个编译gromacs时链接libX11.so(-lX11)不兼容的问题,目前还不知道如何解决! 编译器就用了一个Intel Fortran Compiler 9 Build 021版本,因为只有Intel 9系列的编译器才能发挥dual core的威力。没用Intel的C Compiler,不知道用了之后会不会更好。 FFT还是用的FFTW2.1.3,因为不知道如何 阅读全文
posted @ 2011-05-04 13:33 super119 阅读(266) 评论(0) 推荐(0) 编辑
摘要:这是32位程序在64位系统中运行经常碰到的问题,解决办法很简单,安装ia32-lib等包即可:sudo apt-get install ia32-libs ia32-libs-gtk 阅读全文
posted @ 2011-04-27 23:46 super119 阅读(463) 评论(0) 推荐(0) 编辑
摘要:进入每个源码目录,例如pjlib、pjlib-util、pjsip、pjmedia等,运行命令:doxygen docs/doxygen.cfg这样就在docs目录下有一个html和latex的目录,就可以看到生成的文档了。省的去pjsip的网站上查文档了。 阅读全文
posted @ 2011-04-26 09:46 super119 阅读(366) 评论(0) 推荐(0) 编辑
摘要:在Intel的LAB配置安腾集群的NIS,由于这个集群和Xeon的集群在一个网段内,连在一个交换机上,所以,可能是Xeon集群的NIS配置影响了安腾集群(尽管两个NIS DOMAIN不一样),安腾集群上某个节点死活找不到NIS Server。 这个可以通过配置/etc/yp.conf文件,手动指定domain server的hostname来解决,这样,ypbind不用去broadcast查找domain server,直接就连过去了。 阅读全文
posted @ 2011-04-23 10:52 super119 阅读(682) 评论(0) 推荐(0) 编辑
摘要:如果我们的并行程序使用了MPI定义的I/O函数的话(在MPICH中是ROMIO这个库),那么,我们在配置NFS的时候是有一些特殊的地方的: 1、要求NFS的版本至少是3 2、要求nfslock这个service一定要打开 3、要求从节点在/etc/fstab文件中定义mount主节点的NFS的目录的时候,option一栏不能填defaults,至少要将 noac(no attribute cache)这个option配上(该配置不允许NFS缓存文件的属性,虽然noac会降低一些性能,但是它能保证在有多个NFS client读写文件的时候,都能正确读写数据)。 长见识啊!这里还有篇参考文档,这个 阅读全文
posted @ 2011-04-23 10:46 super119 阅读(1294) 评论(0) 推荐(0) 编辑
摘要:PVFS2 1.4.0说实在话,做的很不错,起码在安装配置这方面很简单-无需重新编译kernel,安装手册也写的很不错,安装很顺利,所以,不再赘述了,直接参考这篇Quick Start,很详细:很简单的将安装步骤说一下(我的集群四个节点,每个节点四个Core Xeon LV,主机名是compute1 --- compute4,compute1做管理节点,所以做pvfs 的matadata server,不做I/O Server,其他三个节点做I/O server) 然后就是做性能测试了,性能测试我做了两个,一个是将compute1上面的一个2.2G的文件拷贝到pvfs的目录下(/mnt/pvf 阅读全文
posted @ 2011-04-23 10:42 super119 阅读(735) 评论(0) 推荐(0) 编辑
摘要:1、MPICH2 1.0.3中之所以出现了mpd这样的东西,MPICH的开发者声称这是将mpi程序的通讯和计算分开。在MPICH1中,我们直接用mpirun来执行 一个任务,此时,要先用rsh这些东西通讯,然后再启动进程,对出错调试、程序启动速度等都有影响。所以,在MPICH2中,将通讯这部分单独做出来,那 就是mpd了,而且用Python书写,简单易懂,从而解决上面的问题。 2、MPICH2推荐用mpiexec来执行任务而不是mpirun,因为的确,mpiexec相比mpirun,有了很多实用的feature,比如: mpiexec -n 1 -host loginnode master : 阅读全文
posted @ 2011-04-23 10:41 super119 阅读(1153) 评论(0) 推荐(0) 编辑
摘要:openmosix(www.openmosix.org) 是一个开源项目,前身是MOSIX,openmosix是MOSIX的开源实现。一般我们把HPC集群称为Beowulf集群,而MOSIX类型的集群则 和HPC集群完全不同。openmosix的集群是一个kernel patch,它在kernel这一层实现任务均衡的作用。比如说,一个集群有10个节点,那么,如果我们要压制10首MP3的话,那么只需要将这个任务提 交到任何一个节点,那么openmosix就会自动将这个任务分发到10个节点上,而且任务迁移的时间都是second级别的。由于openmosix是 kernel一级的,所以,对于上层ap 阅读全文
posted @ 2011-04-23 10:29 super119 阅读(657) 评论(0) 推荐(0) 编辑
摘要:Learning NFS NIS 2nd Edition Notes 1. 七层模型,见附件1 从附件1的图上可以看到,我们之前看到的不同的网络都是体现在Data Link层上的,比如Ethernet,或是令牌网,或是X.25这样的网络,和物理层没有关系,物理层只是传输介质的不同,比如令牌网也可以跑在五类双 绞线上。往后会看到,因为Data Link担负着填充MAC地址,将数据按packets的方式进行打包和组织并计算checksum等的工作,所以,不同的网络都是在这一层上不同的。 此外,还可以看到,RPC是基于TCP/IP的上面一层,我们常说NFS是基于RPC的,所以,现在可以理解就是,NF 阅读全文
posted @ 2011-04-16 10:33 super119 阅读(291) 评论(0) 推荐(0) 编辑
摘要:Linux虚拟服务器(LVS)系统是由负载调度器(Load Balancer)、服务器集群(Server Cluster)和文件存储服务(File Servers)组成的,通过Linux下的负载平衡,将一群服务器构成一个服务集群,而实际服务器的前端是一台负载平衡器,将用户的请求调度到实际服务 器执行后将结果返回用户,而终端用户可见的只是一台服务器,由于负载调度技术是在Linux内核中实现的,我们称之为Linux Virtual Server。正如上文所讲,当前网络服务要求系统提供可靠性、可用性高的服务,即要求系统在遭到破坏和出现故障时,系统上的数据不能丢失,而且在尽可能 短的时间内恢复系统的正 阅读全文
posted @ 2011-04-16 10:33 super119 阅读(634) 评论(0) 推荐(0) 编辑
摘要:CFX10的安装比较简单,唯一需要注意的是,我们手上的CFX10只能装在IA32上,在x86-64上安装会有问题(能安装成功,但是无法运行) 安装完成后,执行cfx5就能启动CFX Launcher,但是一旦点击CFX Pre或CFX Post,就会出现下面的错误: /usr/local/cfx10/CFX-10.0/bin/linux/PreGui_ogl.exe: /usr/local/cfx10/CFX-10.0/lib/linux/libgcc_s.so.1: version `GCC_3.3' not found (required by /usr/lib/libstdc++ 阅读全文
posted @ 2011-04-16 10:33 super119 阅读(1207) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 22 下一页