MPI实验.doc

Size: px
Start display at page:

Download "MPI实验.doc"

Transcription

1 MPI 实验手册 2014 年 5 月

2 实验环境说明 : 虚拟机 :Vmware Workstation 9 Linux 系统 :CentOS 6.3 每台机器上有 3 个未配置的虚拟机节点用于进行 MPI 环境配置实验, 有 3 个已配置好 的节点可以直接运行 MPI 程序 3 台已配置好的 Linux 虚拟机 IP 地址如下, 可以登录系统用 ifconfig 指令查看 node node node 管理用户账户 : root, 密码 : 一般用户账号 :cloud, 密码 : 实验中用到的主要 Linux 指令 切换到 root 用户 su root 切换到 cloud 用户 su cloud 配置网络 setup 网络重启 service network restart 修改主机名 vim /etc/sysconfig/network 新建目录 mkdir 通过 vim 新建文档 vim 重启机器 reboot 删除文件夹及其中所用的文件 rm rf 解压缩文件 tar xvzf 修改文件权限, 只有所有制才有读和写的权限 chmod 600 复制文件 cp 远程复制文件 scp 查看主机名 hostname

3 实验 1: 在虚拟机环境下搭建 3 个节点的 MPI 集群 实验任务 在虚拟机环境下搭建拥有 4 个节点的 MPI 集群 实验步骤 1. 安装 Linux 系统 2. 保证每个节点的 sshd 服务 (Secure Shell) 能正常启动 (root 权限 ) su root service sshd start 3. 永久关闭每个节点的防火墙 (root 权限 ), 避免 MPI 不能访问网络造成程序执行出错 chkconfig iptables off// 永久性生效, 重启后不会复原 4. 为每个节点分配 IP 地址 (root 权限 ) IP 地址最好连续分配, 实验中我们将其设置为 setup service network restart 注 : 这些 IP 地址就是要搭建的并行环境的节点对应的 IP 地址, 用户可以通过这些 IP 访问对应的节点 5. 修改机器名 (root 权限 ) vim /etc/sysconfig/network 将 HOSTNAME=localhost.localdomain 中的 localhost.localdomain 改为当前节点的 名称, 如 HOSTNAME=node1 HOSTNAME=node2 修改完后通过 hostname 指 令可以查看机器名 6. 配置 /etc/hosts 文件 (root 权限 ) 该文件可以实现 IP 地址和机器的对应解析, 所有节点的该文件均要按下面的内容修改 注意 localhost localhost.localdomain 要保留, 否则启动 mpd 服务时将出错 : localhost localhost.localdomain node node node3 重启系统 reboot 通过以上配置后节点之间能够通过各节点的机器名称相互访问 例如, 可以通过 ping node2 或 ssh node2 进行测试 注 : 用户配置 /etc/hosts 文件的意义, 就是给节点 IP 起了个别名 : 如第一行 node1 就是用 node1 来标识 这样我们就可以直接 ping node1 而不用输入很长的 IP 地址了 7. 挂载 NFS 文件系统 由于 MPICH 的安装目录和用户可执行程序在并行计算时需要在所有节点存副本, 而且 目录要相互对应, 每次一个节点一个节点地复制非常麻烦, 采用 NFS 文件系统后可以实现 所有节点内容与主节点内容同步更新, 并自动实现目录的对应 NFS 文件系统使得所有机 器都能以同样的路径 ( 假设为 /usr/cluster) 访问服务器上保存的文件, 访问方法如同对本地 文件的访问 这对于部分采用 MPI 进行并行计算的用户来说可能是必须的, 通常我们会将 MPICH 的安装目录及并行程序存放目录配置为 NFS 共享目录, 这样可以省去将文件向各个 节点复制的麻烦, 大大提高工作效率 NFS 文件系统的配置方法示例如下 ( 假设 NFS 服务器 IP 为 , 配置需在 root 用户下完成 )

4 (1) 服务器端配置方法 ( 下面的配置只在主节点进行 ) 1 /etc/exports 文件配置 在文件 /etc/exports 中增加以下几行, 设定共享出去的目录信息和权限 : /usr/cluster (rw) /usr/cluster (rw) 这几行文字表明 NFS 服务器向 IP 地址为 , 的节点共享其 /usr/cluster 目录, 并使这些节点具有可读写权限 如有更多的节点可按此方法填写 2 启动 NFS 服务 启动 NFS 服务只需要以下两个命令, 必须先启动 rpc 才能启动 nfs, 不然端口不能注册, 无法进行启动 : service rpcbind start service nfs start 到此 IP 为 的服务器已向其他两个节点提供 /usr/cluster 目录的文件共享 可 以查看 的 /usr/cluster 查看 cd /usrcluster (2) 客户端配置方法 ( 需要在所有子节点做同样的配置 ) 1 建立共享目录 建立与服务器相同的共享目录用于共享服务器文件 :(root 权限 ) mkdir /usr/cluster 2 查看服务器已有的共享目录 ( 这步可省略 ) showmount -e 通过这条命令我们可以查看 IP 地址为 的服务器可以共享的目录情况 3 挂载共享目录 mount -t nfs :/usr /cluster /usr/cluster 这一命令将 NFS 服务器 上的共享目录挂载到本地 /usr/cluster 目录下 我们 也可在所有子节点的 /etc/fstab 文件中输入以下的代码, 使文件系统在启动时实现自动挂载 NFS: :/usr/cluster /usr/cluster nfs defaults 0 0 至此我们已可以实现对 NFS 共享目录的本地访问, 所有子节点的 /usr/cluster 文件夹都共享 了 NFS 服务器的同名文件夹的内容, 我们可以像访问本地文件一样访问共享文件 MPICH 的 安装目录和用户存放并行程序的文件夹都需实现 NFS 共享, 从而避免了每次向各节点发送程序 副本 8. 配置 ssh 实现 MPI 节点间用户的无密码访问 (1) 先在 node1 上做以下操作, 生成了私钥 id_dsa 和公钥 id_dsa.pub, 具体操作方法如 下 cd /home/cloud mkdir ~/.ssh cd ~/.ssh ssh-keygen -t dsa ssh-keygen 的作用是让 Linux 机器之间可以无密码访问 系统显示如下信息, 遇到系统询问直接回车即可 Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_dsa. Your public key has been saved in /home/user/.ssh/id_dsa.pub. The key fingerprint is: a9:8a:c7:0b:a6:59:71:03:92:ff:ac:e9:96:c2:5a:74 (2) 将该密钥用作认证, 进行访问授权 将公钥改名为 authorized_keys, 删除群组 (g) 与其他人 (o) 对目录的读写执行权限, 按如下命令在 node1 执行

5 cp ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys chmod go-rwx ~/.ssh/authorized_keys (3) 将 ~/.ssh 目录下的文件复制到所有节点 scp -r ~/.ssh node2: scp -r ~/.ssh node3: (4), 每个节点输入 ssh-add (5) 检查是否可以直接 ( 不需要密码 ) 登录其他节点 ssh node1 ssh node2 如能两两之间不需密码登录其他节, 则表明配置成功 这一步非常重要, 确保两两节点之间可无密码访问, 注意, 两个节点第一次无密码访问 的时候需要确认, 以后将无需再确认 9. 安装 MPICH2 (1) 主节点下载 MPICH2 压缩包, 放在到 /usr/cluster 目录下, 在该目录下解压 (root 权限 ) tar xvzf mpich2-1.0.tar.gz 解压完成后将在当前目录生成一个 MPICH 文件目录 (2) 进入 MPICH 解压后的目录 mpich p1, 配置安装目录 cd /usr/cluster/mpich p1./configure --prefix=/usr/cluster/mpich2 根据以上配置 MPICH 将安装在目录 /usr/cluster/mpich2, 并确保所有节点已建立针对该 目录的 NFS 共享 (3) 编译安装 MPICH2 进入解压后的 MPICH 文件目录, 分别执行 make 和 make install 指令, 这会花一段较长的时间 make make install (4) 在当前用户目录下建立并编辑配置文件 mpd.hosts, 该文件用于存放集群节点主 机名 将所有你允许访问本机进行并行计算的机器名填入, 一行一个机器名, 如果该机器上 有两个 CPU, 就将它的名字加入两次, 以此类推 例如, 在我们实例中的 mpd.hosts 文件内 容如下 :( 用户权限, 每个节点都进行操作 ) node1 node2 node3 注意, 文中包含自己 ( 即给自己放权 ) 的目的是为了在只有一个节点时也可以模拟并行 计算环境 (5) 配置环境变量 编辑 MPI 用户主目录下的 ~/.bashrc 文件, 增加一行 :( 用户权限, 每个节点都进行操作 ) export PATH="$PATH:/usr/cluster/mpich2/bin" 这一行代码将 MPI 的安装路径加入用户的当前路径列表 重新打开命令行窗口后生效 定 (6) 启动 mpd 守护进程 运行 mpirun, 首先要运行 mpd 在启动 mpd 守护进程前要 在各个节点的用户主目录下生成一个.mpd.conf 文件, 将其权限设置为只有所有者才能 访问, 具体步骤如下 : cd /home/cloud touch.mpd.conf chmod 600.mpd.conf mpd&.mpd.conf 文件的内容为 :( 用户权限 ) secretword= 其中, 为识别口令, 在所有节点中都建立该文件并保持口令一致, 口令可自己设 mpd& 为启动本地 mpd 的命令, 我们也可以采用以下命令同时启动 mpd.hosts 中所列节

6 点的 mpd mpdboot n < 节点个数 > -f mpd.hosts 如 : mpdboot n 4 -f mpd.hosts 这一命令将同时在 mpd.hosts 文件中所指定的节点上启动 mpd 管理器 mpd 启动后执行 mpdtrace l 可以查看各个节点机器名 (7) 编译 运行一个简单的测试程序 cpi, 这是一个 MPICH 自带的计算 π 值的并行示 例程序, 该例程在 MPICH 的 examples 目录下 运行命令如下 : mpirun -np 3./cpi 运行结果如下 Process 0 of 3 is on node0 Process 1 of 3 is on node1 Process 2 of 3 is on node2 pi is approximately , Error is wall clock time = 得到这样的输出结果表示我们所搭建的机群系统已经可以成功地运行 MPI 作业 mpi 的编译命令为 mpicc, 如编译 test.c 可用如下命令 : mpicc o test test.c 实验 2: 编写 编译 运行对一个并行程序 hello parallel world 实验目的 熟悉最基本的 MPI 函数, 熟悉 MPI 程序结构, 编译运行第一个 MPI 程序 实验内容 本实例将介绍一段最简单的并行程序, 相信学员看了这段程序之后对并行程序的畏惧将 消失一大半, 这段程序虽然简单, 主程序只有三行, 但它确实实现了多个计算节点的共同工 作, 也是一个真正意义上的并行程序 MPI 函数说明 (1) 并行初始化函数 :int MPI_Init(int *argc, char ***argv) 参数描述 :argc 为变量数目,argv 为变量数组, 两个参数均来自 main 函数的参数 MPI_Init() 是 MPI 程序的第一个函数调用, 标志着并行程序部分的开始, 它完成 MPI 程序的初始化工作, 所有 MPI 程序并行部分的第一条可执行语句都是这条语句 该函数的 返回值为调用成功标志 同一个程序中 MPI_Init() 只能被调用一次 函数的参数为 main 函 数的参数地址, 所以并行程序和一般 C 语言程序不一样, 它的 main 函数参数是不可缺少的, 因为 MPI_Init() 函数会用到 main 函数的两个参数 (2) 并行结束函数 :int MPI_Finalize() MPI_Finalize() 是并行程序并行部分的最后一个函数调用, 出现该函数后表明并行程序 的并行部分的结束 一旦调用该函数后, 将不能再调用其他的 MPI 函数, 此时程序将释放 MPI 的数据结构及操作 这条语句之后的代码仍然可以进行串行程序的运行 该函数的调用 较简单, 没有参数 并行源代码 /* 文件名 :hello.c*/ #include "mpi.h"

7 #include <stdio.h> int main(int argc,char **argv) 编译指令 MPI_Init(&argc,&argv); // 并行部分开始 printf("hello parallel world!\n"); MPI_Finalize(); // 并行部分结束 mpicc o hello hello.c 运行指令 mpirun-np 3./hello 运行结果 (3 个节点 ) hello parallel world! hello parallel world! hello parallel world! 实验 3: 通过 MPI_Comm_rank() MPI_Comm_size() 获取进程标志 和机器名 实验目的 熟悉 MPI 以下的 3 个函数 (1) 获得当前进程标识函数 :int MPI_Comm_rank ( MPI_Comm comm, int *rank ) (2) 获取通信域包含的进程总数函数 :int MPI_Comm_size(MPI_Comm comm, int *size) (3) 获得本进程的机器名函数 :int MPI_Get_processor_name( char *name,int *resultlen) 并行源代码 /* 文件名 :who.c*/ #include "mpi.h" #include <stdio.h> int main(int argc,char **argv) int myid, numprocs; int namelen; char processor_name[mpi_max_processor_name]; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&myid);// 获得本进程 ID MPI_Comm_size(MPI_COMM_WORLD,&numprocs);// 获得总的进程数目 MPI_Get_processor_name(processor_name,&namelen);// 获得本进程的机器名 printf("hello World! Process %d of %d on %s\n",myid, numprocs, processor_name); MPI_Finalize(); 运行结果 (3 个节点 ) Hello World! Process 0 of 3 on wang1 Hello World! Process 1 of 3 on wang2 Hello World! Process 2 of 3 on wang3

8 程序说明 : 本实例程序启动后会在各个节点同时执行, 各节点通过 MPI_Comm_rank() 函数取得自己的进程标识 myid, 不同的进程执行 MPI_Comm_rank() 函数后返回的值不同, 如节点 0 返回的 myid 值为 0; 通过 MPI_Comm_size() 函数获得 MPI_COMM_WORLD 通信域中的进程总数 numprocs, 通过 MPI_Get_processor_name() 函数获得本进程所在的机器名 各进程调用自己的打印语句将结果打印出来, 一般 MPI 中对进程的标识是从 0 开始的 在本例中机器名分别为 wang1 wang2 wang3 共 3 个节点 这里需要再次强调的是,MPI 并行程序中的变量是分布存储的, 每个节点都有自己独立的存储地址空间, 如 myid numprocs namelen 等变量在各个节点是独立的, 相同的变量名它们的值是可以不同的 大家在读程序时心中一定要有变量分布存储的概念, 否则将无法正确分析程序 下图解释了本实例运行时的情况 : 每个节点都有独立的变量存储空间, 程序的副本存在于所有节点并分别得到执行, 各个节点计算时的地位是平行的 变量的分布存储 节点 1 机器名 :wang1 进程标识 :0 who.c 程序副本变量值 : myid=0,numprocs=3 节点 2 机器名 :wang2 进程标识 :1 who.c 程序副本变量值 : myid=1,numprocs=3 节点 3 机器名 :wang3 进程标识 :2 who.c 程序副本变量值 : myid=2,numprocs=3 图 MPI 中变量的分布式存储方式 在 3 个节点的情况下如果我们的运行命令改为 : mpirun np 6./who 这时会在每个节点上启动两个进程, 因此程序的输出会变为 : Hello World! Process 0 of 6 on wang1 Hello World! Process 1 of 6 on wang2 Hello World! Process 2 of 6 on wang3 Hello World! Process 3 of 6 on wang1 Hello World! Process 4 of 6 on wang2 Hello World! Process 5 of 6 on wang3 这一运行结果表明程序在 3 个节点上启动了 6 个进程, 每个节点都启动了两个进程 实验 4: 有消息传递功能的并行程序 实验目的 : 熟悉 MPI 的以下函数 (1) 消息发送函数 int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) (2) 消息接收函数 :int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) 并行源代码 /* 文件名 :message.c*/ #include <stdio.h> #include "mpi.h"

9 int main(int argc, char** argv) int myid, numprocs, source; MPI_Status status; char message[100]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); if (myid!= 0) else strcpy(message, "Hello World!");// 为发送字符串赋值 // 发送字符串时长度要加 1, 从而包括串结束标志 MPI_Send(message,strlen(message)+1, MPI_CHAR, 0,99,MPI_COMM_WORLD); // 除 0 进程的其他进程接收来自于 0 进程的字符串数据 for (source = 1; source < numprocs; source++) MPI_Recv(message, 100, MPI_CHAR, source, 99,MPI_COMM_WORLD, &status); printf("i am process %d. I recv string '%s' from process %d.\n", myid, message,source); MPI_Finalize(); 运行结果 (3 个节点 ) I am process 0. I recv string 'Hello World!' from process 1. I am process 0. I recv string 'Hello World!' from process 2. I am process 0. I recv string 'Hello World!' from process 3. 程序说明 本实例由其他进程通过 MPI 消息传递机制向 0 进程发送 Hello World 字符串数据, 非 0 进程采用 MPI_Send() 函数发送数据,0 进程通过循环语句分别通过 MPI_Recv() 函数接 收来自其他进程的字符串数据 接收缓冲区和发送缓冲区均采用同名变量 message, 由于地 址空间是独立的, 不同进程中的 message 变量虽然名字相同但却是完全不相关的变量 程序 在进行字符串的信息传递时发送长度要加 1 以包含串结束的标志 运行结果中的 3 条打印结 果都是由进程 0 打印的 实验 5: 用蒙特卡洛方法求 π 实验任务 : 基于蒙特卡罗思想用 MPI 程序实现对 π 值的并行求解实验目的 : 掌握蒙特卡洛算法并行化的实现方法实现方法 : 根据蒙特卡罗方法的思想, 我们以坐标原点为圆心作一个直径为 1 的单位圆, 再作一个

10 正方形与此圆相切 在这个正方形内随机产生 count 个点, 判断是否落在圆内, 将落在圆内 的点数目计作 m, 根据概率理论,m 与 count 的比值就近似可以看成圆和正方形的面积之比, m π 0.5 由于圆的半径为 0.5, 正方形的边长为 1, 我们有 =, 则 π 值可以用以下公式计算 : count 1 4m π = 本实验就采用这一方法来计算 π 的近似值 count 并行源代码 2 据 /* 文件名 :mtpi.c*/ #include"mpi.h" #include <stdio.h> #include <stdlib.h> int main(int argc,char **argv) int myid, numprocs; int namelen,source; long count= ; char processor_name[mpi_max_processor_name]; MPI_Status status; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&myid);// 得到当前进程的进程号 MPI_Comm_size(MPI_COMM_WORLD,&numprocs);// 得到通信域中的总进程数 MPI_Get_processor_name(processor_name,&namelen);// 得到节点主机名称 srand((int)time(0));// 设置随机种子 double y; double x; long m=0,m1=0,i=0,p=0; double pi=0.0,n=0.0; for(i=0;i<count;i++) x=(double)rand()/(double)rand_max;// 得到 0~1 之间的随机数,x 坐标 y=(double)rand()/(double)rand_max;// 得到 0~1 之间的随机数,y 坐标 if((x-0.5)*(x-0.5)+(y-0.5)*(y-0.5)<0.25)// 判断产生的随机点坐标是否在圆内 m++; n=4.0*m/ ; printf("process %d of %d on %s pi= %f\n",myid,numprocs,processor_name,n); if(myid!=0) // 判断是否是主节点 MPI_Send(&m,1,MPI_DOUBLE,0,1,MPI_COMM_WORLD);// 子节点向主节点传送结果 else p=m; /* 分别接收来自于不同子节点的数据 */ for(source=1;source<numprocs;source++) MPI_Recv(&m1,1,MPI_DOUBLE,source,1,MPI_COMM_WORLD,&status);// 主节点接收数 p+=m1; printf("pi= %f\n",4.0*p/(count* numprocs));// 汇总计算 pi 值 MPI_Finalize();

11 运行结果 (3 个节点 ) Process 1 of 3 on wang2 pi= Process 0 of 3 on wang1 pi= Process 2 of 3 on wang1 pi= pi= 程序说明 本例在设计时引入 numprocs 参数, 即总的节点数, 通过对该参数的使用可以实现在机群节 点个数发生变化时不用对程序作任何修改, 我们通常在编写并行程序时都要求能对节点的数 目进行动态适应, 也就是节点可扩展 在示例中各节点对落入圆内的随机点进行计数, 并将 计算结果发送到主节点, 由主节点对所有数据汇总, 并计算 π 值 系统打印出各节点计算的 π 值和汇总后的 π 值 这种 π 值计算方法收敛速度较慢, 但是非常优美, 随机数的威力是很强 大的 这类算法具有很好的并行化能力, 各节点几乎不需要作信息交换, 独立完成自己的计 算工作 实验 6: 用蒙特卡罗方法求积分 实验任务 : 采用 Monte-Carlo 法计算函数 y=x 2 在 0~10 之间的积分值 实验目的 : 熟悉 MPI_Reduce() 函数的用法 实现方法 : 该算法的思想是通过随机数把函数划分成小的矩形块, 通过求矩形块的面积和来求积分 值, 我们生成 n 个 0~10 之间的随机数, 求出该随机数所对应的函数值作为矩形的高, 由于 随机数在 n 很大时会近似平均分布在 0~10 区间, 所以矩形的宽取相同的值为 10 n, 对所有 的矩形块求和即可得函数的积分值 并行源代码 /* 文件名 inte.c*/ #define N #include <stdio.h> #include <stdlib.h> #include <time.h> #include "mpi.h" int main(int argc, char** argv) int myid,numprocs; int i; double local=0.0; double inte,tmp=0.0,x; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); srand((int)time(0));// 设置随机数种子 /* 各节点分别计算一部分积分值 */ /* 以下代码在不同节点运行的结果不同 */

12 for(i=myid;i<n;i=i+numprocs) x=10.0*rand()/(rand_max+1.0);// 求函数值 tmp=10*x*x/n; local=tmp+local;// 各节点计算面积和 // 计算总的面积和, 得到积分值 MPI_Reduce(&local,&inte,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD); if(myid==0) printf("the integal of x*x=%16.15f\n",inte); MPI_Finalize(); 运行结果 The integal of x*x= 程序说明 以上程序通过随机数将积分区域划分为 个小的区域, 各节点计算一部分小矩形的 面积, 最后通过 MPI_Reduce() 函数对所有节点的计算结果进行归约求和得到最后的积分值, 归约的过程就是各节点向主节点发送数据, 由主节点接收数据并完成指定的计算操作, 这一 思想与云计算中的 Map/Reduce 思想类似, 都是将任务分配到各节点计算最后由主节点汇总 结果 程序通过 myid 和 numpros 参数的配合使同一段程序在不同的节点运行时完成不同部 分的积分工作, 这利用了 MPI 并行编程中变量分布式存储的原理, 不同的节点其 myid 值是 不同的 可见在 MPI 中会出现相同的代码在不同的节点执行时结果不一样的情况, 这在串 行程序中是不会出现的, 大家要注意理解 实验 7: 用 MPI 的 6 个基本函数实现 Reduce 函数功能 ( 选做 ) 实验任务 : 采用 Monte-Carlo 法计算函数 y=x 2 在 0~10 之间的积分值实验目的 : 用 MPI 的基本函数实现 MPI 中的 MPI_Reduce() 函数的部分功能并行源代码 /* 文件名 myreduce.c*/ #define N #include <stdio.h> #include <stdlib.h> #include <time.h> #include "mpi.h" void Myreduce(double *sendbuf, double *recvbuf,int count,int root);// 定义自己的 reduce 函数 int main(int argc, char** argv) int myid,numprocs; int i; double local=0.0;

13 double inte,tmp=0.0,x; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); /* 采用归约对 y=x*x 在 [1,10] 区间求积分 */ srand((int)time(0)); for(i=myid;i<n;i=i+numprocs) x=10.0*rand()/(rand_max+1.0); tmp=x*x/n; local=tmp+local; Myreduce(&local,&inte,1,0);// 调用自定义的规约函数 if(myid==0) printf("the integal of x*x=%16.15f\n",inte); MPI_Finalize(); /* 自定义的归约函数,sendbuf 为发送缓冲区,recvbuf 为接收缓冲区,count 为数据个数,root 为 指定根节点 */ /* 该函数实现归约求和的功能 */ void Myreduce(double *sendbuf,double *recvbuf,int count,int root) MPI_Status status; int i; int myid,numprocs; *recvbuf=0.0; MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); double *tmp; // 非 root 节点向 root 节点发送数据 if(myid!=root) MPI_Send(sendbuf,count,MPI_DOUBLE,root,99,MPI_COMM_WORLD); //root 节点接收数据并对数据求和, 完成规约操作 if(myid==root) *recvbuf=*sendbuf; for(i=0;i<numprocs;i++) if(i!=root) MPI_Recv(tmp,count,MPI_DOUBLE,i,99,MPI_COMM_WORLD,&status); *recvbuf=*recvbuf+*tmp; 运行结果 The integal of x*x= 程序说明 : 本示例程序中我们自定义了一个归约函数 Myreduce(), 所用到的 MPI 函数没有超过 6 个基本函数, 该函数包括 4 个参数, 第一个参数 sendbuf 为各节点的发送缓冲区, 第二个参 数 recvbuf 为根节点的接收缓冲区, 第三个参数 count 为每个节点发送的数据个数, 第四个

14 参数 root 为需要指定的接收数据并归约数据的根节点 该函数没有给出具体的归约操作, 默认为对所有数据做求和的归约操作 程序执行到这一函数后将各自节点的指定数据向根节点发送, 并由根节点完成求和操作, 其基本的信息传递工作仍由 MPI_Send() 和 MPI_Revc() 函数来完成 本例我们以对函数 y = x 2 在 [0,10] 区间求积分为例, 应用自定义的 Myreduce() 函数实现所有节点数据的求和, 计算结果与调用 MPI_Reduce() 函数的结果一样, 这说明采用 6 个基本函数是可以实现大部分 MPI 功能的 我们也可以采用 6 个基本函数编写实现其他复杂的 MPI 函数 实验 8: 数据分发实验 实验目的 : 熟悉数据的分布式存储方法, 加深对 MPI_Reduce 及消息传递的理解 并行源代码 #include "mpi.h" #include <stdio.h> int main(int argc,char **argv) int myid,num,i,temp,max; int a[5][5] = 2,99,4,35,12, 96,23,77,88,55, 56,666,78,21,11, 19,28,36,75,81, 91,100,92,6,56; int recvbuff[5]; MPI_Status status; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&myid); MPI_Comm_size(MPI_COMM_WORLD,&num); if(num==5) MPI_Scatter(a,5,MPI_INT,recvbuff,5,MPI_INT,0,MPI_COMM_WORLD); temp=recvbuff[0]; for(i=1;i<5;i++) if(temp<recvbuff[i]) temp=recvbuff[i]; MPI_Reduce(&temp,&max,1,MPI_INT,MPI_MAX,0,MPI_COMM_WORLD); if(myid==0) printf("the max is %d\n",max); else printf("the number must 5!\n"); MPI_Finalize(); return 0; 实验 9: 计算与通信并行实验

15 实验目的 : 熟悉 MPI 的以下函数 (1) 非阻塞数据发送函数 :int MPI_Isend(void *buf,int count, MPI_Datatype datatype,int dest, int tag, MPI_Comm comm, MPI_Request *request) (2) 非阻塞数据接收函数 :int MPI_Irecv(void *buf,int count,mpi_datatype datatype,int source, int tag, MPI_Comm comm, MPI_Request *request) (3) 等待非阻塞数据传输完成 :int MPI_Wait(MPI_Request *request,mpi_status *status) (4) 测试非阻塞数据传输对象 int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status) 并行源代码 /* 文件名 :isend.c*/ #include <stdio.h> #include <stdlib.h> #include "mpi.h" int main(int argc,char **argv) int i, numprocs,namelen,myid; char processor_name[mpi_max_processor_name]; int buf[5];// 数据缓冲区 int flag=0;// 定义数据传输成功标志 MPI_Status status; MPI_Request r;// 定义阻塞通信对象 MPI_Init( &argc, &argv ); MPI_Comm_rank( MPI_COMM_WORLD, &myid ); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); MPI_Get_processor_name(processor_name,&namelen); if (myid == 0) for(i=0;i<5;i++) buf[i]=i; /* 节点 0 调用非阻塞数据发送函数, 传送一个数组, 并立即返回 */ MPI_Isend(&buf, 5, MPI_INT, 1, 99, MPI_COMM_WORLD, &r); else /* 节点 1 调用非阻塞数据接收函数, 接收数组, 并立即返回 */ MPI_Irecv(&buf, 5, MPI_INT, 0, 99, MPI_COMM_WORLD, &r); /* 检测数据是否传输成功 */ MPI_Test(&r,&flag,&status); printf("before MPI_Wait flag=%d. The buf is can't be used!\n",flag); /* 打印数据未传输成功时的接收缓冲区数据内容 */ for(i=0;i<5;i++) printf("buf[%d]=\t%d \n",i,buf[i]); /* 此处可进行其他的计算工作, 但不能调用接收缓冲区数据 */ /* 调用 MPI_Wait 等待数据传输成功, 在调用接收缓冲区数据前一般应调用该函数 */ MPI_Wait(&r,&status); /* 测试此时数据是否传输成功, 此时一定是成功的 */ MPI_Test(&r,&flag,&status); printf("after MPI_Wait flag=%d. The buf is can be used!\n",flag);

16 /* 打印数据传输成功后的接收缓冲区的内容 */ for(i=0;i<5;i++) printf("buf[%d]=\t%d \n",i,buf[i]); MPI_Finalize( ); return 0; 运行结果 ( 两个节点 ) Before MPI_Wait flag=0. The buf is can't be used! buf[0]= buf[1]= buf[2]= 0 buf[3]= buf[4]= After MPI_Wait flag=1. The buf is can be used! buf[0]= 0 buf[1]= 1 buf[2]= 2 buf[3]= 3 buf[4]= 4 程序说明 该程序从 0 号节点向 1 号节点传送一组整型数据, 由于我们采用了非阻塞通信方式, 因 此发送函数和接收函数在调用后就会立即返回, 而不会等待数据传输完成, 这意味着发送和 接收数据的缓冲区会在调用非阻塞消息发送和接收函数后有一段时间处于不可用的状态, 但 这段时间我们可以让系统做其他的计算工作, 但要注意的是这些计算工作不能调用发送和接 收数据缓冲区内的数据, 否则会出现不可预测的结果 我们从程序的运行结果来看当节点 1 调用非阻塞接收函数后, 通过 MPI_Test() 函数检测返回 flag = 0, 数据传输还未完成, 此时 打印接收缓冲区的数据也表明数据确实还未接收成功, 这说明 MPI_Irecv() 函数调用后不会 等待数据传输成功而立即返回, 在数据传输期间系统可以从事其他的计算工作, 但这些计算 工作不能涉及接收缓冲区, 因为接收缓冲区还处于不确定状态 为了保证结果的确定性, 我 们在调用非阻塞接收函数后, 要使用接收缓冲区中的数据前, 需要调用 MPI_Test() 函数判断 数据传输是否成功, 或调用 MPI_Wait() 函数等待数据传输成功 从程序运行结果来看我们 调用 MPI_Wait() 函数后 flag =1, 数据接收缓冲区中的数据已正常存储可以调用其中的数据 同样, 我们在调用非阻塞发送函数后, 在数据未成功传输前, 也不能马上访问并修改发送 缓冲区, 否则发送的数据会发生改变 根据我们的分析, 一个计算与通信重叠的 MPI 并行 程序流程下图所示

17 图 计算与通信重叠的 MPI 并行程序流程 注意事项和常见问题 注意事项 (1) 部分服务配置文件需要 root 用户权限, 如 NFS 服务器的配置, 在安装时如出现问题请 首先检查当前用户是否具备相应的权限 (2)/etc/hosts 文件需要在所有节点上修改 (3) 各节点的 MPICH 和用户程序要在相同的目录下, 所有节点都必须有 MPICH 和用户程 序的副本 (4) 如出现 mpd 无法启动请检查所有节点的 NFS 文件共享是否正常启动 (5) 启动 mpd 前要保证所有节点都正确安装了 MPICH (6)NFS 配置及取消密码配置的顺序可以交换, 但 MPICH 必需最后安装, 否则 MPI 不能 正常运行 (7) 运行 MPI 程序时出现故障请检查以下内容 : 网络是否正常, 各节点是否能无密码相互 登录,mpd 是否在所有节点都已启动,NFS 服务及共享在各节点是否已完成, 各节点.mpd.conf 文件中密码是否相同, 可执行文件是否在各节点的相同路径有副本,MPICH 的安装文件是 否在各节点的相同路径有副本 (8) 安装时无法采用 ssh 登录系统时请检查系统的防火墙设置 (9) 系统必须已安装 GCC 才能进行并行环境的配置 (10) 当 ssh 无密码访问配置出现故障时, 可将所有节点的.ssh 文件夹全部清除, 重新配置 ssh 无密码访问 常见问题 (1) 配置无密码访问时出现 :Agent admitted failure to sign using the key 解决方法 : 每个节点输入 ssh-add (2) 用虚拟机安装了一个 Centos 系统, 后来想用安装的 vmdk 文件重新克隆一个虚拟 系统 clone 成功后发现网卡无法启动成功, 报错信息如下 : Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization. [FAILED] 这是因为虚拟机分配给操作系统的虚拟网卡地址是不一样的 第一个系统的网卡地址记

18 录在了 /etc/udev/rules.d/70-persistent-net.rules, 命名为 eth0 新分配的系统的网卡地址也记录 在了该文件当中, 因此有了冲突 解决方法 :(root 权限 ) 第 1 步 : 修改 /etc/udev/rules.d/70-persistent-net.rules 文件, 删除第一个网卡记录, 并将 第二个的 NAME="eth1" 改为 NAME="eth0" 第 2 步 : 如果在 /etc/sysconfig/network-scripts/ifcfg-eth0 中有配置网卡信息的话, 如 :#H WADDR="00:0C:29:C8:1A:92", 将其注释 第 3 步 : 重启系统 (3) 运行 service portmap start, 显示 portmap: unrecognized service, 需要安装 rpcbind el6.i686.rpm libtirpc el6.i686.rpm libgssglue el6.i686.rpm (4) 安装 MPICH2 缺少 fortran 库 解决方法 yum install compat-gcc-34-g77 compat-libf2c-34 (5) 问题 :configure: error: c++ compiler cannot create executables 解决方法 : yum install gcc gcc-c++ gcc-g77 (6) 配好的并行环境在重启之后不能运行, 提示 no mpd is running on this host, 这 时重新启动 mpd 程序即可 : mpd&

投影片 1

投影片 1 平行運算簡介 / 實例操作企鵝也會的 MPICH 研究員 : 鄧偉華 wade@nchc.org.tw 什麼是平行計算 傳統 : 單一程序 單一 CPU 什麼是平行計算 ( 續 ) 平行計算 程序切割 多 CPUs 為什麼要平行計算 簡省時間 解決大型問題 即時性 使用更多來自網路上的資源 使用大量 便宜 PCs 取代超級電腦 記憶體不足 平行計算種類 Flynn's taxonomy 多處理器架構

More information

ssh-keygen -t rsa

ssh-keygen -t rsa 虚拟并行运算环境 mpi 的配置简介科研菜鸟 v2.0 http://blog.sciencenet.cn/u/sanshiphy 问题 : 有一台电脑,1 cpu, 超线程 8 核, 已安装 Ubuntu 系统 现配置两台虚拟机, 每台虚拟机 1cpu,3 核, 两台虚拟机均安装 Ubuntu server 系统, 并实现 mpi 并行运算 思路 : 利用 vmware 构造虚拟机, 利用 ssh

More information

第7章-并行计算.ppt

第7章-并行计算.ppt EFEP90 10CDMP3 CD t 0 t 0 To pull a bigger wagon, it is easier to add more oxen than to grow a gigantic ox 10t 0 t 0 n p Ts Tp if E(n, p) < 1 p, then T (n) < T (n, p) s p S(n,p) = p : f(x)=sin(cos(x))

More information

Microsoft PowerPoint - Tongji_MPI编程初步

Microsoft PowerPoint - Tongji_MPI编程初步 并行编程初步 张丹丹 上海超级计算中心 2011-3-4 提纲 引言 认识 MPI 编程 MPI 编程简介 实例 并行计算机体系架构 共享存储 (Shared Memory) 并行计算机体系架构 分布式存储 (Distributed Memory) 混合架构 (Hybrid) 并行计算机体系架构 并行编程模型 数据并行模型 相同的操作同时作用于不同的数据 共享变量模型 用共享变量实现并行进程间的通信

More information

Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007

Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 Department of Science and Engineering Computing School of Mathematics School Peking University

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 机群应用开发 并行编程原理及程序设计 Parallel Programming: Fundamentals and Implementation 占杰 zhanjie@dawningcomcn 曙光信息产业有限公司 2010 年 1 月 2010 年 1 月 1 参考文献 黄铠, 徐志伟著, 陆鑫达等译 可扩展并行计算技术, 结构与编程 北京 : 机械工业出版社, P33~56,P227~237,

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 第四讲 消息传递编程接口 MPI 一 MPI 编程基础 主要内容 MPI 安装 程序编译与运行 MPI 编程基础 MPI 程序基本结构 MPI 数据类型 消息发送和接收 MPI 一些常用函数 MPI 介绍 Message Passing Interface 消息传递编程标准, 目前最为通用的并行编程方式 提供一个高效 可扩展 统一的并行编程环境 MPI 是一个库, 不是一门语言,MPI 提供库函数

More information

Ubuntu和CentOS如何配置SSH使得无密码登陆

Ubuntu和CentOS如何配置SSH使得无密码登陆 Ubuntu 和 CentOS 如何配置 SSH 使得无密码登陆 在使用 Hadoop 的时候, 一般配置 SSH 使得我们可以无密码登录到主机, 下面分别以 Ubuntu 和 CentOS 两个平台来举例说明如何配置 SSH 使得我们可以无密码登录到主机, 当然, 你得先安装好 SSH 服务器, 并开启 ( 关于如何在 Linux 平台下安装好 SSH 请参加本博客的 Linux 平台下安装 SSH

More information

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc 在 VMWare-5.5+RedHat-9 下建立 本机 QTopia-2.1.1 虚拟平台 张大海 2008-5-9 一 资源下载 1. 需要以下安装包 : tmake-1.13.tar.gz qtopia-free-source-2.1.1.tar.gz qt-embedded-2.3.10-free.tar.gz qt-x11-2.3.2.tar.gz qt-x11-free-3.3.4.tar.gz

More information

Parallel Programming with MPI

Parallel Programming  with MPI MPI 并行编程入门 中国科学院计算机网络信息中心超级计算中心 参考材料 张林波清华大学出版社莫则尧科学出版社都志辉清华大学出版社 消息传递平台 MPI 什么是 MPI (Message Passing Interface) 是函数库规范, 而不是并行语言 ; 操作如同库函数调用 是一种标准和规范, 而非某个对它的具体实现 (MPICH 等 ), 与编程语言无关 是一种消息传递编程模型, 并成为这类编程模型的代表

More information

05_資源分享-NFS及NIS.doc

05_資源分享-NFS及NIS.doc 5 NFS NFS Server NFS Client NIS NIS 5-0 (Network File System, NFS) Unix NFS mount NFS... Network Information Service NIS Linux NIS NIS NIS / / /etc/passwd /etc/group NFS NIS 5-1 NFS 5-1-1 NFS NFS Network

More information

模板

模板 MPI MPI MPI MPI MPI MPI 4 18 9% 5 ? 6 ? 7 数 个数 数 个数 个数 个数 8 ccnuma; SMP MPP; Cluster 9 10 11 12 13 MPI MPI MPI MPI MPI? MPI MPI MPI MPI 15 MPI? MPI(Message Passing Interface ) 1994 5 MPI MPI MPI MPI C

More information

mannal

mannal 高 性 能 集 群 计 算 机 使 用 说 明 书 版 本 1.0.8 高 性 能 计 算 研 究 组 编 2008 年 3 月 12 日 第 1 页 共 30 页 高 性 能 集 群 计 算 机... 1 使 用 说 明 书... 1 高 性 能 计 算 集 群 使 用 说 明... 3 1. 集 群 系 统 概 述... 3 2. 使 用 方 法... 5 1. 登 录 方 法... 5 2.MPI

More information

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0 SDChain-Matrix 节点搭建指南 目录 1 环境要求... 3 2 软件下载... 4 3 安装部署... 4 3.1 部署可执行程序目录... 4 3.2 部署配置文件目录... 4 3.3 部署数据库文件目录... 4 3.4 部署日志文件目录... 4 3.5 部署依赖库文件目录... 4 4 配置参数... 5 5 启动运行... 7 5.1 普通模式启动... 7 5.2 加载启动模式...

More information

深圳市亚可信息技术有限公司 NetWeaver 7.3 EhP1 ABAP on Redhat Enterprise Linux Server 62 for Oracle112 High Availability System Installation Created by

深圳市亚可信息技术有限公司 NetWeaver 7.3 EhP1 ABAP on Redhat Enterprise Linux Server 62 for Oracle112 High Availability System Installation Created by NetWeaver 7.3 EhP1 ABAP on Redhat Enterprise Linux Server 62 for Oracle112 High Availability System Installation Created by 13092539@qq.com 1. 安装规划 Parameter Host A Host B Host C For ASCS Database Dialog

More information

Microsoft PowerPoint - KN002.ppt

Microsoft PowerPoint - KN002.ppt MPI II 1300141 14114 16001630 1630 MPI 11 11 3 MPI MPI-110 MPI- SPMD Single Program/Instruction Multiple Data CPU 4 PE: Processing Element PE #0 Program Data #0 PE #1 Program Data #1 SPMD mpirun -np M

More information

Slide 1

Slide 1 基本编译和纠错 吴宏文 hongwenwu@cn.ibm.com IBM STG Lab Services and Training 1 目录 AIX 上编译介绍 MPI 编译运行介绍 一般程序的纠错 2 一般编译过程 源文件 source 编译 目标文件 object 连接 可执行文件 exe 执行 3 一般编译过程 Unix 系统中, 可执行文件没有统一的后缀, 系统从文件的属性来区分可执行文件和丌可执行文件

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

Parallel Programming with MPI

Parallel Programming  with MPI MPI 并行编程入门 中国科学院计算机网络信息中心超级计算中心 聚合通信 定义 三种通信方式 聚合函数列表 同步 广播 收集 散发 全散发收集 归约 定义 communicator 1 3 4 5 0 2 一个通信器的所有进程参与, 所有进程都调用聚合通信函数 MPI 系统保证聚合通信函数与点对点调用不会混淆 聚合通信不需要消息标号 聚合通信函数都为阻塞式函数 聚合通信的功能 : 通信 同步 计算等

More information

1 学习目标了解并掌握 MPI 的各种非阻塞通信形式及其作用, 并能运用 MPI 的非阻塞通信语句编写高级的并行程序 2 重点和难点非阻塞通信的语义特点, 如何运用非阻塞通信的特点来实现特定的功能和性能 3 学习方法所有的阻塞调用形式都有其相应的非阻塞调用形式, 此外非阻塞调用还有其特殊的接口形式

1 学习目标了解并掌握 MPI 的各种非阻塞通信形式及其作用, 并能运用 MPI 的非阻塞通信语句编写高级的并行程序 2 重点和难点非阻塞通信的语义特点, 如何运用非阻塞通信的特点来实现特定的功能和性能 3 学习方法所有的阻塞调用形式都有其相应的非阻塞调用形式, 此外非阻塞调用还有其特殊的接口形式 Lecture15 阻塞通信和非阻塞通信 1 学习目标了解并掌握 MPI 的各种非阻塞通信形式及其作用, 并能运用 MPI 的非阻塞通信语句编写高级的并行程序 2 重点和难点非阻塞通信的语义特点, 如何运用非阻塞通信的特点来实现特定的功能和性能 3 学习方法所有的阻塞调用形式都有其相应的非阻塞调用形式, 此外非阻塞调用还有其特殊的接口形式 虽然非阻塞调用的形式很多, 但是要把握它们, 最根本的一点就是非阻塞通信的基本语义

More information

Linux服务器构建与运维管理

Linux服务器构建与运维管理 1 Linux 服务器构建与运维管理 第 2 章 :Linux 基本命令 阮晓龙 13938213680 / rxl@hactcm.edu.cn http://linux.xg.hactcm.edu.cn http://www.51xueweb.cn 河南中医药大学管理科学与工程学科 2018.3 2 提纲 目录与文件的操作 mkdir touch mv cp rm rmdir file tree

More information

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def Kaise s 2410 Board setting [1]. Device Driver Device Driver Linux s Kernel ARM s kernel s3c2410_kernel2.4.18_r1.1_change.tar.bz2 /usr/src (1) #cd /usr/src (2) #tar xfj s3c2410_kernel2.4.18_r1.1_change.tar.bz2

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

消息传递并行编程环境MPI.doc

消息传递并行编程环境MPI.doc 973 MPI PETS 8 15 8 16 8 17 MPI MPI MPI MPI 2 MPI PETS PETS 1 1971 7 1992 1997 1999 2 MPI MPI MPI 1 MPI MPI MPI 2 - u=f MPI 3 1 proess 1 2 2 CPU 4 send reeive barrier redution 1 2 3 CPU soket, 4 : API

More information

puppet 简介 3 puppet 是什么 3 Hello world 4 puppet 安装 5 debian 系发行版安装 puppet 5 redhat 系发行版安装 puppet 5 源代码安装 puppet 6 配置 c/s 模式的 puppet 试验环境 6 puppet 语法 8 资

puppet 简介 3 puppet 是什么 3 Hello world 4 puppet 安装 5 debian 系发行版安装 puppet 5 redhat 系发行版安装 puppet 5 源代码安装 puppet 6 配置 c/s 模式的 puppet 试验环境 6 puppet 语法 8 资 puppet 入门 puppet 简介 3 puppet 是什么 3 Hello world 4 puppet 安装 5 debian 系发行版安装 puppet 5 redhat 系发行版安装 puppet 5 源代码安装 puppet 6 配置 c/s 模式的 puppet 试验环境 6 puppet 语法 8 资源 8 类和函数 10 节点 11 变量和数组 12 模块 13 几个常用的资源

More information

华恒家庭网关方案

华恒家庭网关方案 LINUX V1.5 1 2 1 2 LINUX WINDOWS PC VC LINUX WINDOWS LINUX 90% GUI LINUX C 3 REDHAT 9 LINUX PC TFTP/NFS http://www.hhcn.com/chinese/embedlinux-res.html minicom NFS mount C HHARM9-EDU 1 LINUX HHARM9-EDU

More information

untitled

untitled V3049A-EXD IP-SAN/NAS Infinova Infinova Infinova Infinova www.infinova.com.cn Infinova Infinova Infinova 1 2 1 2 V3049A-EXD-R16 V3049A-EXD-R24 ... 1 1.1... 1 1.2... 1 1.3... 1... 2 2.1... 2 2.2... 3...

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

スライド 1

スライド 1 LPIC 304 2014 7 27 ( ) 13:30 16:30 LPI-Japan LPI-Japan 2009. All rights reserved. LPI-Japan 2009. All rights reserved. 2 Linux Linus Torvalds Carl ) in LinuxConJapan http://www.lpi.or.jp/news/event/page/20130529_02_report/

More information

untitled

untitled V3041A-J/V3042A-J IP-SAN/NAS Infinova Infinova Infinova Infinova www.infinova.com.cn Infinova Infinova Infinova 1 2 1 2 V3041A-16R-J V3041A-24R-J V3042A-16R-J V3042A-24R-J V3049-EXD-R16 V3049-EXD-R24 ...

More information

Linux Linux Linux

Linux Linux Linux 2003 2003 8 28 http://lssc.cc.ac.cn/training2003 1 3 23 Linux 37 3.1............................................... 37 3.2 Linux..................................... 37 3.3 Linux..................................

More information

本文由筱驀釹贡献

本文由筱驀釹贡献 本 文 由 筱 驀 釹 贡 献 ppt 文 档 可 能 在 WAP 端 浏 览 体 验 不 佳 建 议 您 优 先 选 择 TXT, 或 下 载 源 文 件 到 本 机 查 看 Linux 操 作 系 统 Linux 操 作 系 统 第 一 部 分 介 绍 与 安 装 Linux 的 由 来 : Linux 的 由 来 : 的 由 来 Linus Torvalds 1.Linux 的 版 本 1.Linux

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 机群应用开发 并行编程原理及程序设计 Parallel Programming: Fundamentals and Implementation 戴荣 dair@dawningcomcn 曙光信息产业有限公司 2008 年 7 月 2008 年 7 月 1 参考文献 黄铠, 徐志伟著, 陆鑫达等译 可扩展并行计算技术, 结构与编程 北京 : 机械工业出版社, P33~56,P227~237, 2000

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

嵌入式系统实验报告之一

嵌入式系统实验报告之一 南京航空航天大学 嵌入式系统综合实验报告 Qtopia 在 S3C2440 开发板上的移植 040630520 彭立勋 2009.05 一 实验目的 1. 熟悉 ARM 体系结构 ; 2. 熟悉 Qtopia 图形环境 二 实验内容 将 Qtopia 图形环境移植到 FriendlyARM QQ2440 开发板 三 预备知识 Qtopia 的体系结构 四 实验设备及工具 硬件 :QQ2440 开发板

More information

スライド 1

スライド 1 LPIC 304 2015 1 18 ( ) 13:30 16:30 LPI-Japan LPI-Japan 2009. All rights reserved. LPI-Japan 2009. All rights reserved. 2 Linux Linus Torvalds Carl ) in LinuxConJapan nginx Igor Sysoev in Nginx LPI-Japan

More information

Microsoft Word - linux命令及建议.doc

Microsoft Word - linux命令及建议.doc Linux 操 作 系 统 命 令 集 1 基 本 命 令 查 看 系 统 信 息 : uname -a 修 改 密 码 : passwd 退 出 : logout(exit) 获 取 帮 助 : man commands 2 文 件 和 目 录 命 令 显 示 当 前 工 作 目 录 : pwd 改 变 所 在 目 录 : cd cd - 切 换 到 上 一 次 使 用 的 目 录 cd 切 换

More information

C6_ppt.PDF

C6_ppt.PDF C01-202 1 2 - (Masquerade) (Replay) (Message Modification) (Denial of Service) - ( ) (Eavesdropping) (Traffic Analysis) 8 1 2 7 3 6 5 4 3 - TCP SYN (SYN flood) Smurf Ping of Death LAND Attack Teardrop

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

IP505SM_manual_cn.doc

IP505SM_manual_cn.doc IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP

More information

C++ 程式設計

C++ 程式設計 C C 料, 數, - 列 串 理 列 main 數串列 什 pointer) 數, 數, 數 數 省 不 不, 數 (1) 數, 不 數 * 料 * 數 int *int_ptr; char *ch_ptr; float *float_ptr; double *double_ptr; 數 (2) int i=3; int *ptr; ptr=&i; 1000 1012 ptr 數, 數 1004

More information

投影片 1

投影片 1 FreeBSD A 95/10/11 19:00~21:00 95/10/11 FreeBSD 練 1 Services Setup SSH, lighttpd, PHP, MySQL, FTP, Postfix, phpmyadmin, Blog, Gallery 95/10/11 FreeBSD 練 2 1. 2. # FreeBSD # 3. vi ee joe nano etc 95/10/11

More information

to AztecOO Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007

to AztecOO Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 to AztecOO Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 to AztecOO Department of Science and Engineering Computing School of Mathematics

More information

自由軟體教學平台

自由軟體教學平台 NCHC Opensource task force DRBL steven@nchc.gov.tw, c00hkl00@nchc.gov.tw National Center for High-Performance Computing http://www.nchc.gov.tw Jan, 2003 1 2003/1/28 ( ) 09:00-10:30 10:40-12:00 Linux 13:00-14:30

More information

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用 TORQUE Maui hmli@ustc.edu.cn 2008 1 1 TORQUE 2 1.1 TORQUE........................... 2 1.2 TORQUE...................... 2 1.3 TORQUE.......................... 4 1.4 TORQUE........................... 4

More information

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30 0 配置 Host MIB 设备 V 1.1.2 ( 简体版 ) 0 Update: 2016/1/30 前言 N-Reporter 支持 Host Resource MIB 监控主机 (Host) 状态, 本文件描述 N-Reporter 用户如何配置 Host MIB 设备 文件章节如下 : 1. 配置 Windows Server 2003... 2 1-1.Windows Server 2003

More information

C/C++ 语言 - 循环

C/C++ 语言 - 循环 C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf

More information

Flink快速上手(QuickStart)

Flink快速上手(QuickStart) 安装 : 下载并启动 Flink 可以在 Linux Mac OS X 以及 Windows 上运行 为了能够运行 Flink, 唯一的要求是必须安装 Java 7.x 或者更高版本 对于 Windows 用户来说, 请参考 Flink on Windows 文档, 里面介绍了如何在 Window 本地运行 Flink 下载 从下载页面 (http://flink.apache.org/downloads.html)

More information

Microsoft Word - PS2_linux_guide_cn.doc

Microsoft Word - PS2_linux_guide_cn.doc Linux For $ONY PlayStatioin2 Unofficall General Guide Language: Simplified Chinese First Write By Beter Hans v0.1 Mail: hansb@citiz.net Version: 0.1 本 人 是 菜 鸟 + 小 白 欢 迎 指 正 错 误 之 处, 如 果 您 有 其 他 使 用 心 得

More information

. Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像

. Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像 .... 计算机应用教研室 @ 计算机学院嵌入式系统实验室 @ 苏州研究院中国科学技术大学 Fall 2010 . Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像 . 编译 Linux 在 QEMU 模拟器上运行 qemu+linux-2.6.26.1. 准备模拟器.2.

More information

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf(%d, &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf(% 2013 ( 28 ) ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 10 B 1 C 1 D 5 E 5 F 1 G II 5 H 30 1 2013 C 1 #include 2 int main(void) 3

More information

Trilinos 简介 Trilinos 简介 卢朓 Trilinos 简介 卢朓 Trilinos 简介 Trilinos 简介 Trilinos 的安装和使用 Trilinos 简介 Trilinos 简介 Trilinos 的安装和使用 Trilinos 简介 Trilinos Epetra

Trilinos 简介 Trilinos 简介 卢朓 Trilinos 简介 卢朓 Trilinos 简介 Trilinos 简介 Trilinos 的安装和使用 Trilinos 简介 Trilinos 简介 Trilinos 的安装和使用 Trilinos 简介 Trilinos Epetra Department of Science and Engineering Computing School of Mathematics School Peking University Department of Science and Engineering Computing School of Mathematics School Peking University August 14,

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

untitled

untitled 1 DBF (READDBF.C)... 1 2 (filetest.c)...2 3 (mousetes.c)...3 4 (painttes.c)...5 5 (dirtest.c)...9 6 (list.c)...9 1 dbf (readdbf.c) /* dbf */ #include int rf,k,reclen,addr,*p1; long brec,erec,i,j,recnum,*p2;

More information

《C语言程序设计》第2版教材习题参考答案

《C语言程序设计》第2版教材习题参考答案 教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 9 [P.11] : Dev C++ [P.12] : http://c.feis.tw [P.13] [P.14] [P.15] [P.17] [P.23] Dev C++ [P.24] [P.27] [P.34] C / C++ [P.35] 10 C / C++ C C++ C C++ C++ C ( ) C++

More information

PowerPoint Presentation

PowerPoint Presentation 并行计算 十五 分布存储系统并行编程 分布存储系统并行编程 14.1 基于消息传递的并行编程 14.2 MPI 并行编程 6 个基本函数组成的 MPI 子集 MPI 消息 点对点通信 群集通信 SPMD 和 MPMD SPMD 各个进程是同构的, 多个进程对不同的数据执行相同的代码 ( 一般是数据并行 ) 常对应并行循环, 数据并行结构, 单代码 MPMD 各个进程是异构的, 多个进程执行不同的代码

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf (%d, & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9 201 201 21 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 1 B 1 C 5 D RPG 10 E 10 F 1 G II 1 1 201 201 C 1 # include 2 int main ( void

More information

ebook8-30

ebook8-30 3 0 C C C C C C++ C + + C++ GNU C/C++ GNU egcs UNIX shell s h e l l g a w k P e r l U N I X I / O UNIX shell awk P e r l U N I X C C C C C C U N I X 30.1 C C U N I X 70 C C U N I X U N I X U N I X C Dennis

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

工银瑞信货币市场证券投资基金2008年度第2季度报告

工银瑞信货币市场证券投资基金2008年度第2季度报告 2016 年 6 月 30 日 基 金 管 理 人 : 华 富 基 金 管 理 有 限 公 司 基 金 托 管 人 : 中 国 建 设 银 行 股 份 有 限 公 司 报 告 送 出 日 期 :2016 年 7 月 21 日 1 重 要 提 示 基 金 管 理 人 的 董 事 会 及 董 事 保 证 本 报 告 所 载 资 料 不 存 在 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并

More information

关闭 selinux&&iptables vi /etc/selinux/config Reboot 之后查询 selinux 开启状态 关闭 iptables service iptables stop chkconfig iptables off 配置 hosts 文件 ( 修改主机名 ) vi

关闭 selinux&&iptables vi /etc/selinux/config Reboot 之后查询 selinux 开启状态 关闭 iptables service iptables stop chkconfig iptables off 配置 hosts 文件 ( 修改主机名 ) vi Cloudstack+KVM 虚拟化网络构架如下 Cloudstack+NFS 192.168.0.2 KVM 192.168.0.5 Images HTTP ISO 镜像 192.168.0.10 Cloudstack KVM 前期工作关闭相关服务 chkconfig NetworkManager off service NetworkManager stop chkconfig cups off

More information

C

C C 2017 4 1 1. 2. while 3. 4. 5. for 6. 2/161 C 7. 8. (do while) 9. 10. (nested loop) 11. 12. 3/161 C 1. I 1 // summing.c: 2 #include 3 int main(void) 4 { 5 long num; 6 long sum = 0L; 7 int status;

More information

OpenStack Nova安装说明

OpenStack Nova安装说明 OpenStack 完整安装手册 (all-in-one) CentOS 6.x 基于 RPM 包 作者 : yz 联系方式 : QQ: 949587200 日期 : 2012-7-18 版本 : Essex Release 目录 实验环境... 4 架构部署... 4 服务器系统安装... 5 安装... 5 前提工作... 5 NTP 时钟服务安装... 5 MYSQL 数据库服务安装... 6

More information

Abstract arm linux tool-chain root NET-Start! 2

Abstract arm linux tool-chain root NET-Start! 2 Lab III - Embedding Linux 1 Abstract arm linux tool-chain root NET-Start! 2 Part 1.4 Step1. tool-chain 4 Step2. PATH 4 Part 2 kernel 5 Step1. 5 Step2... 6 Step3...8 Part 3 root. 8 Step1. 8 Step2. 8 Part

More information

计算机网络实验说明

计算机网络实验说明 计算机网络实验说明 龚旭东 电三楼 420 lzgxd@mailustceducn 2011 年 11 月 1 日 龚旭东 (TA) 计算机网络实验说明 2011 年 11 月 1 日 1 / 20 Outline 1 实验系统介绍 实验环境实验流程 2 实验内容编程实验交互实验观察实验 3 一些控制台命令 4 实验报告说明 龚旭东 (TA) 计算机网络实验说明 2011 年 11 月 1 日 2

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实 云 服 务 器 ECS 快 速 入 门 (Linux) 快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实 例, 有 时 候 也 被 称 为 阿 里 云

More information

目录 1 编译 HADOOOP 搭建环境 安装并设置 maven 以 root 用户使用 yum 安装 svn 以 root 用户使用 yum 安装 autoconf automake libtool cmake..

目录 1 编译 HADOOOP 搭建环境 安装并设置 maven 以 root 用户使用 yum 安装 svn 以 root 用户使用 yum 安装 autoconf automake libtool cmake.. Spark 编译与部署 ( 中 ) --Hadoop 编译安装 第 1 页共 28 页 目录 1 编译 HADOOOP... 3 1.1 搭建环境... 3 1.1.1 安装并设置 maven... 3 1.1.2 以 root 用户使用 yum 安装 svn... 4 1.1.3 以 root 用户使用 yum 安装 autoconf automake libtool cmake... 5 1.1.4

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 Linux 操 作 系 统 基 础 介 绍 课 程 目 标 及 要 求 了 解 Linux 操 作 系 统 的 登 入 方 式 掌 握 常 用 命 令 的 基 本 用 法 能 够 熟 练 在 各 个 目 录 转 换 Outline 1. Linux 操 作 系 统 简 介 2. Linux 操 作 系 统 的 登 录 3. Linux 操 作 系 统 的 目 录 结 构 4. 常 用 命 令 5.

More information

MPI编译环境的使用

MPI编译环境的使用 .. MPI 编译环境的使用 李会民 hmli@ustc.edu.cn 中国科学技术大学超级运算中心 2011 年 10 月 李会民 ( 中国科大超算中心 ) MPI 编译环境的使用 2011 年 10 月 1 / 17 .1 MPI 编译环境简介.2 MPICH MVAPICH MVAPICH2 Open MPI 等 MPI 编译环境.3 IBM PE MPI 并行环境.4 联系信息 李会民 (

More information

大綱介紹 MPI 標準介紹 MPI 的主要目標 Compiler & Run 平行程式 MPICH 程式基本架構 點對點通訊 函數介紹 集體通訊 函數介紹

大綱介紹 MPI 標準介紹 MPI 的主要目標 Compiler & Run 平行程式 MPICH 程式基本架構 點對點通訊 函數介紹 集體通訊 函數介紹 MPI 平行程式設計 勁智數位科技股份有限公司 技術研發部林勝峰 sflin@infowrap.com.tw 大綱介紹 MPI 標準介紹 MPI 的主要目標 Compiler & Run 平行程式 MPICH 程式基本架構 點對點通訊 函數介紹 集體通訊 函數介紹 MPI (Message Passing Interface) Version1.0:June, 1994. Version1.1:June,

More information

工银瑞信货币市场证券投资基金2008年度第2季度报告

工银瑞信货币市场证券投资基金2008年度第2季度报告 中 海 货 币 市 场 证 券 投 资 基 金 2016 年 第 1 季 度 报 告 2016 年 3 月 31 日 基 金 管 理 人 : 中 海 基 金 管 理 有 限 公 司 基 金 托 管 人 : 中 国 工 商 银 行 股 份 有 限 公 司 报 告 送 出 日 期 :2016 年 4 月 21 日 1 重 要 提 示 基 金 管 理 人 的 董 事 会 及 董 事 保 证 本 报 告 所

More information

目 录(目录名)

目  录(目录名) 目录 1 概述 1-1 2 安装说明 2-1 2.1 支持的 Linux 操作系统 2-1 2.2 使用 root 用户安装 Linux inode 2-1 2.3 使用普通用户安装 Linux inode 2-4 3 使用 Linux inode 进行认证 3-1 4 卸载 Linux inode 4-1 5 常见问题 5-1 1-1 1 概述 Linux 版本的 inode 智能客户端 ( 以下简称

More information

Windows 2000 Server for T100

Windows 2000 Server for T100 2 1 Windows 95/98 Windows 2000 3.5 Windows NT Server 4.0 2 Windows DOS 3.5 T200 2002 RAID RAID RAID 5.1 Windows 2000 Server T200 2002 Windows 2000 Server Windows 2000 Server Windows 2000 Server 3.5 for

More information

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD University of California UNIX X/Open Company, Ltd.

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD University of California UNIX X/Open Company, Ltd. Java Desktop System 2 Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. : 817 7758 10 2004 9 2004 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. Sun Sun

More information

}; "P2VTKNvTAnYNwBrqXbgxRSFQs6FTEhNJ", " " string imagedata; if(0!= read_image("a.jpg",imagedata)) { return -1; } string rsp; ytopen_sdk m_sd

}; P2VTKNvTAnYNwBrqXbgxRSFQs6FTEhNJ,   string imagedata; if(0!= read_image(a.jpg,imagedata)) { return -1; } string rsp; ytopen_sdk m_sd tencentyun-youtu c++ sdk for 腾讯云智能优图服务 & 腾讯优图开放平台 安装 运行环境 Linux 依赖项 - curl-7.40.0, 获取更新版本 https://github.com/bagder/curl - openssl-1.0.1k, 获取更新版本 https://github.com/openssl/openssl 构建工程 工程采用 CMake 构建 1.

More information

Microsoft PowerPoint - CEM-07-Parallel.pptx

Microsoft PowerPoint - CEM-07-Parallel.pptx Parallel Scientific Computing by Computer Cluster Jiun-Hwa Lin Department of Electrical Engineering National Taiwan Ocean University Outline Introduction Simple Cluster Setup Real Examples at NTOU Conclusions

More information

对于 Hadoop 来说, 在 HDFS 看来, 节点分为 Namenode 和 Datanode, 其中 Namenode 只有一个,Datanode 可以是很多 ; 在 MapReduce 看来, 节点又分为 Jobtracker 和 Tasktracker, 其中 Jobtracker 只有一

对于 Hadoop 来说, 在 HDFS 看来, 节点分为 Namenode 和 Datanode, 其中 Namenode 只有一个,Datanode 可以是很多 ; 在 MapReduce 看来, 节点又分为 Jobtracker 和 Tasktracker, 其中 Jobtracker 只有一 hadoop----- 云计算实验 作者 : 张吉良李菁平邓鹏球 关键词 : hadoop 分布式 云计算 mapreduce 摘要 : 摩尔定律统制下的软件开发时代有一个非常有意思的现象 : Andy giveth, and Bill taketh away. 不管 CPU 的主频有多快, 我们始终有办法来利用它, 而我们也陶醉在机器升级带来的程序性能提高中 我们不知不觉的一直在享受着这样的免费午餐

More information

A9RBC8B.tmp

A9RBC8B.tmp CCIE A B 1B 255.255.255.0 255.255.255.224 002 A B 1 1A B 2A B ARP MAC 3A B 192.168.26.2 4A B ARP 003 Wireshark Windows Wireshark 1. http://www.wireshark.org/download.html B 2. Wireshark Capture Interfaces

More information

ChinaBI企业会员服务- BI企业

ChinaBI企业会员服务- BI企业 商业智能 (BI) 开源工具 Pentaho BisDemo 介绍及操作说明 联系人 : 杜号权苏州百咨信息技术有限公司电话 : 0512-62861389 手机 :18616571230 QQ:37971343 E-mail:du.haoquan@bizintelsolutions.com 权限控制管理 : 权限控制管理包括 : 浏览权限和数据权限 ( 权限部分两个角色 :ceo,usa; 两个用户

More information

AL-M200 Series

AL-M200 Series NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel

More information

Linux 操作系统课程社区创作

Linux 操作系统课程社区创作 学 号 14284060xx 等 第 苏 州 大 学 实 验 报 告 Linux 操 作 系 统 课 程 社 区 创 作 院 ( 系 ) 名 称 : 电 子 信 息 学 院 专 业 名 称 : 14 通 信 工 程 ( 嵌 入 式 培 养 ) 学 生 姓 名 : 某 某 某 课 程 名 称 : Linux 操 作 系 统 2015-2016 学 年 第 一 学 期 1 摘 要 这 是 摘 要 主 要

More information

chi@sccas.cn, chi@sc.cnic.cn http://lssc.cc.ac.cn/ http://www.sccas.cn/ http://www.scgrid.cn/ http://www.cngrid.org/ 2005 4 6 3 5 1.1............................ 5 1.2............................. 6 1.2.1..........................

More information

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un Linux C July 27, 2016 Contents 1 Linux IDE 1 2 GCC 3 2.1 hello.c hello.exe........................... 5 2.2............................... 9 2.2.1 -Wall................................ 9 2.2.2 -E..................................

More information

Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007

Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 Department of Science and Engineering Computing School of Mathematics School Peking University

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

Windows 2000 Server for T100

Windows 2000 Server for T100 T200 3020 Windows 2000 Advanced Server /Windows NT 4.0 Server /Redhat Linux7.3 SCO UnixWare7.1.1 Novell NetWare5.0 1. Windows 2000 Advanced Server / 2. Windows NT 4.0 Server / 3. Redhat Linux7.3 4. SCO

More information

绘制OpenCascade中的曲线

绘制OpenCascade中的曲线 在 OpenSceneGraph 中绘制 OpenCascade 的曲线 Draw OpenCascade Geometry Curves in OpenSceneGraph eryar@163.com 摘要 Abstract: 本文简要说明 OpenCascade 中几何曲线的数据, 并将这些几何曲线在 OpenSceneGraph 中绘制出来 关键字 KeyWords:OpenCascade Geometry

More information

Linux Ubuntu Part Linux Ubuntu Linux UNIX...19 Linux...19 Linux Linux...21 Linux GNU FSF Open So urce.

Linux Ubuntu Part Linux Ubuntu Linux UNIX...19 Linux...19 Linux Linux...21 Linux GNU FSF Open So urce. Linux Ubuntu 10.04 Part 1 17 1 Linux Ubuntu... 18 1-1 Linux... 19 UNIX...19 Linux...19 Linux...20...20 Linux...21 Linux...21 1-2 GNU FSF Open So urce...22 GNU...22 GPL...23...24 1-3 GNU/Linux V.S. Linux...25

More information

GRAPES 软件使用指南

GRAPES      软件使用指南 WRF 软件使用指南 2009 年 4 月 中国科学院计算机网络信息中心超级计算中心 联系人 : 高晋芳 E-mail: jfgao@sccas.cn 1 目 录 WRF 软件使用指南...1 1. WRF 软件介绍...3 2. WRF 的安装...4 2.1 安装目录...4 2.2 安装过程...4 3. WRF 软件的使用方法...5 3.1 集群部分...5 3.1.1 使用算例 ( 以

More information

Rocky 定制安装手册 1. 通过安装光盘或 U 盘启动凝思科技公司出品的 linx 系统, 如图 1 所示 图 1: 安装光盘的启动画面 2. 选择 Advanced options 菜单项并回车, 如图 2 所示 图 2: 出现电网定制自动安装的画面 -1-

Rocky 定制安装手册 1. 通过安装光盘或 U 盘启动凝思科技公司出品的 linx 系统, 如图 1 所示 图 1: 安装光盘的启动画面 2. 选择 Advanced options 菜单项并回车, 如图 2 所示 图 2: 出现电网定制自动安装的画面 -1- Rocky6.0.60.4 定制安装手册 1. 通过安装光盘或 U 盘启动凝思科技公司出品的 linx6.0.60.4 系统, 如图 1 所示 图 1: 安装光盘的启动画面 2. 选择 Advanced options 菜单项并回车, 如图 2 所示 图 2: 出现电网定制自动安装的画面 -1- 3. 选择 State Grid automated install 菜单项并回车, 如图 3 所示,

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes 包管理理 工具 Helm 蔺礼强 Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p NOWOER.OM /++ 程师能 评估. 单项选择题 1. 下 描述正确的是 int *p1 = new int[10]; int *p2 = new int[10](); p1 和 p2 申请的空间 的值都是随机值 p1 和 p2 申请的空间 的值都已经初始化 p1 申请的空间 的值是随机值,p2 申请的空间 的值已经初始化 p1 申请的空间 的值已经初始化,p2 申请的空间 的值是随机值 2.

More information