1.下载远程登录软件。多种选择,我用的是SSHSecureShellClient
2.安装完成后运行SSHSecureShellClient,点击最左侧的“quick connect”,输入相关信息:
host name: 210.45.114.190
user name:guest
port:22
authentication:默认
填写完毕,点击“connect”后会要求输入密码,为:guest 。
3.登录成功后会以 guest 的身份进入命令行,依次执行如下操作:
a) mkdir SC12011007 //记得把后面的学号部分换成你自己的学号,这会在远程主机的guest默认目录下创建以你学号命名的文件夹
b) cd SC12011007 //进入你刚才创建的个人目录,在本目录下完成程序的编辑,编译及运行
此处,中科大的同学可以直接把老师放在主页上的c代码直接上传到服务器,省得自己一行一行码。方法:点击工具栏上的图标,进去后可以看到remote mane 里有你刚刚新建的由你学号命名的文件夹,在左侧的“local name ”中把老师写好的C源码全部选中,然后点击,把C文件传到以你学号命名的文件夹中。
c) nano hello.c //用nano编辑器来创建hello.c文件,进入编辑器后开始输入程序内容(见教材194面),黄刘生老师给你C文件中没有包含hello.c。科大的同学如果要运行hello,请自行输入。输入完后按Ctrl+O 保存退出,确认是否保存文件,直接按下enter键。此时你用一下 ls 命令,你就能看到你刚才编辑保存的 hello.c 文件了,科大的同学会看到很多文件(那些都是你自己刚刚上传的……)。
d) omcc -o hello hello.c //调用OpenMP的编译命令,对hello.c进行编译,生成可执行文件为 hello .如果编译出错的话,说明你的代码有误,需要再回到步骤 c) 对源程序进一步修改,修改完成后再次编译,直到编译程序不报错位置。此时你再用一下 ls -l 命令,就会在当前目录下看到有三个文件 : hello.c(源文件) , hello.o (目标文件,这也是为什么上面的 -o 选项后不能为 hello.o的原因) ,hello (可执行文件)。
e) ./hello //执行刚才生成的可执行文件,你就会看到相应并行效果的,不出意外的话会有8行输出,这说明系统默认线程数目为 8
f) export OMP_NUM_THREADS=4 //此命名是用来导入环境变量的,设置系统默认线程数目为4的,当然你也可以改为其他值,大家不妨多试试。
g) ./hello //对默认线程数目修改后,再次运行可执行文件,你会看到不一样的输出的。
4.对于MPI程序编译和运行命令有所不同,大家可以试着输入一下教材 108 面的示例程序,按照下面的编译及运行命令看一下效果
a) 用步骤3种同样的方法创建 simple.c文件,并保存
b) 编译: mpicc simple.c -o simple -lm 注:涉及库函数调用时在后面加-lm,涉及矩阵乘法的时候如果出现如下错误提示:p0_18495: p4_error: Child process exited while making connection to remote process on node2: 0
Killed by signal 2. 解决办法:在主目录下直接输入(注意source后面有空格):source /home/guest/.bashrc
c) 运行: mpirun -np 2 simple *** //-np 后面的参数为参与并行运算的处理器个数,大家可以自己设置的。 ***部分视具体程序而定。