close
Warning:
Can't synchronize with repository "(default)" (Unsupported version control system "svn": libp11-kit.so.0: failed to map segment from shared object: Cannot allocate memory). Look in the Trac log for more information.
- Timestamp:
-
Oct 20, 2009, 4:11:07 PM (16 years ago)
- Author:
-
rock
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
|
v4
|
v5
|
|
| 5 | 5 | }}} |
| 6 | 6 | = 【前言】 = |
| 7 | | * 使用的 OS 為 Debian etch (5.0.3) AMD64 |
| 8 | | * 桌面的 '''Web Broswer''' 為瀏覽器 |
| 9 | | * 桌面的 '''終端機''' 用來輸入課程中的指令 |
| 10 | | * 為了方便學員,可以使用 '''__複製__'''和'''__貼上__''' 繁瑣的指令 (請複製 "$" 之後的指令) |
| 11 | | * 黑底白字部份為指令 |
| 12 | | * 第1個指令為 使用 '''vim''' 指令來編輯 hosts 這個文件 |
| 13 | | * 第2個指令的 '''sudo''' 為轉換成 root 管理者身份來編輯此文件 (因 hosts 文件的權限只有 root 能修改) |
| 14 | | * 第3個指令的 '''gedit''' 給不習慣用 vim 的學員使用 (類似 windows 的 notepad) |
| | 7 | = 【前言】 = |
| | 8 | * 操作說明: |
| | 9 | * 桌面的 '''Web Broswer''' 為瀏覽器,'''終端機''' 用來輸入課程中的指令 |
| | 10 | * 黑底白字部份為'''指令''' ($ 為命令提示字元, $ 之後才是指令) |
| 15 | 11 | {{{ |
| 16 | 12 | $ vim /etc/hosts |
| … |
… |
|
| 18 | 14 | $ sudo gedit /etc/hosts |
| 19 | 15 | }}} |
| 20 | | * 白底黑字為文件內容 |
| | 16 | * 第1個指令為 使用 '''vim''' 指令來編輯 hosts 這個文件 |
| | 17 | * 第2個指令的 '''sudo''' 為轉換成 root 管理者身份來編輯此文件 (因 hosts 文件的權限只有 root 能修改) |
| | 18 | * 第3個指令的 '''gedit''' 給不習慣用 vim 的學員使用 (類似 windows 的 notepad) |
| | 19 | * 白底黑字為'''文件內容''' |
| 21 | 20 | {{{ |
| 22 | 21 | #!sh |
| 23 | 22 | 127.0.0.1 localhost |
| 24 | 23 | }}} |
| 25 | | * 若是文件內容前面有數字則為行數 (方便學員可以快速找到文件編輯位置,下圖則為 /etc/hosts 文件的第1行) |
| | 24 | * 若是文件內容前面有數字則為'''行數''' (方便學員可以快速找到文件編輯位置,下圖則為 /etc/hosts 文件的第1行) |
| 26 | 25 | {{{ |
| 27 | 26 | #!sh |
| 28 | 27 | 1 127.0.0.1 localhost |
| 29 | 28 | }}} |
| | 29 | * 軟體說明: |
| | 30 | || Host/dom0 OS || Ubuntu 9.04 Desktop (AMD64) || |
| | 31 | || VM/Guest/dmoU OS || Debian lenny (AMD64) || |
| | 32 | || MPICH2 || [http://www.cebacad.net/files/mpich2_1.1.1-1debian_amd64.deb 1.1.1-1](AMD64)|| |
| 30 | 33 | ---- |
| 31 | 34 | = 【Step 0: 流程】 = |
| 32 | | * 本範例使用 OpenNEbula 開啟一個有4個 Nodes 的 Virtual MPI Cluster 在兩台實體機器上 |
| | 35 | * 本範例使用 OpenNEbula 開啟一個有 3 個 Nodes 的 Virtual MPI Cluster 在兩台實體機器上 |
| 33 | 36 | |
| 34 | 37 | {{{ |
| … |
… |
|
| 40 | 43 | node[shape=box,width=3.0]; |
| 41 | 44 | |
| 42 | | "4.開啟 Virtul MPI Cluster" -> "5.MPI 程式測試" ; |
| 43 | | "1.建立基本 MPI Base System" -> "2. Clone Base System" -> "3.修改設定檔"; |
| | 45 | "4.使用 OpenNEbula 開啟 Virtul MPI Cluster" -> "5.MPI 程式測試" ; |
| | 46 | "1.建立基本 MPI Base System" -> "2. Clone MPI Base System" -> "3.編輯 Virtual MPI Cluster 設定檔"; |
| 44 | 47 | } |
| 45 | 48 | }}} |
| 46 | 49 | ---- |
| 47 | 50 | = 【Step 1:建立基本 MPI Base System】 = |
| | 51 | * 為了方便學員快速建置 MPI Virtual Cluster,可下載已做好的 Image |
| | 52 | {{{ |
| | 53 | $ cd |
| | 54 | $ scp dclouder@drbl:mpi_fs.tar.bz2 . |
| | 55 | $ tar jxvf mpi_fs.tar.bz2 |
| | 56 | }}} |
| | 57 | ---- |
| | 58 | = 【Step 2:Clone MPI Base System】 = |
| | 59 | * 製作 mpi02 & mpi03 的 image |
| | 60 | {{{ |
| | 61 | $ sudo xm new mpi01.cfg |
| | 62 | $ sudo virt-clone -o mpi01 -n mpi02 -f mpi02.swap.img -f mpi02.disk.img |
| | 63 | $ sudo virt-clone -o mpi01 -n mpi03 -f mpi03.swap.img -f mpi03.disk.img |
| | 64 | $ sudo xm list |
| | 65 | }}} |
| | 66 | * 先移除全部的 VM |
| | 67 | {{{ |
| | 68 | $ sudo xm delete mpi01 |
| | 69 | $ sudo xm delete mpi02 |
| | 70 | $ sudo xm delete mpi03 |
| | 71 | # sudo xm list |
| | 72 | }}} |
| | 73 | ---- |
| | 74 | = 【Step 3:編輯 Virtual MPI Cluster 設定檔】 = |
| | 75 | * 編輯 OpenNEbual 的 Virtual MPI Cluster 設定檔 (mpi02 & mpi03 依此類推) |
| | 76 | {{{ |
| | 77 | $ vim mpi01.one |
| | 78 | }}} |
| | 79 | {{{ |
| | 80 | #!sh |
| | 81 | NAME = mpi01 |
| | 82 | CPU = 1 |
| | 83 | MEMORY = 128 |
| | 84 | OS = [ kernel = /boot/vmlinuz-2.6.26-2-xen-amd64, |
| | 85 | initrd = /boot/initrd.img-2.6.26-2-xen-amd64, |
| | 86 | root = sda2] |
| | 87 | DISK = [ source = /home/clouder/mpi01.disk.img, |
| | 88 | clone = no, |
| | 89 | target = sda2, |
| | 90 | readonly = no] |
| | 91 | DISK = [ type = swap, |
| | 92 | size = 128, |
| | 93 | target = "sda1", |
| | 94 | readonly = "no" ] |
| | 95 | NIC = [mac=""] |
| | 96 | }}} |
| | 97 | ---- |
| | 98 | = 【Step 4:使用 OpenNEbula 開啟 Virtul MPI Cluster】 = |
| | 99 | * 開啟 Virtual MPI Cluster |
| | 100 | {{{ |
| | 101 | $ onehost list |
| | 102 | $ onevm list |
| 48 | 103 | |
| | 104 | $ onevm create mpi01.one |
| | 105 | $ onevm create mpi02.one |
| | 106 | $ onevm create mpi03.one |
| | 107 | }}} |
| | 108 | ---- |
| | 109 | = 【Step 5:MPI 程式測試】 = |
| | 110 | * 設定 MPI 環境的注意事項 |
| | 111 | * 須安裝 MPICH2 (本 Image 已預先安裝好了) |
| | 112 | * 必須設定 clouder 的 ssh 免密碼登入 (Image 已預先做好了) |
| | 113 | * /etc/hosts 必須有 mpi01、mpi02、mpi03的資訊 |
| | 114 | * 編輯 MPI node |
| | 115 | {{{ |
| | 116 | $ cd |
| | 117 | $ vim mpd.hosts |
| | 118 | }}} |
| | 119 | {{{ |
| | 120 | #!sh |
| | 121 | mpi01 |
| | 122 | mpi02 |
| | 123 | mpi03 |
| | 124 | }}} |
| | 125 | * 啟動 MPI 環境 |
| | 126 | {{{ |
| | 127 | $ mpdboot -n3 -f mpd.hosts |
| 49 | 128 | |
| 50 | | |
| 51 | | |
| 52 | | * xen-create-image |
| 53 | | * copy 原來主機的帳戶 |
| 54 | | * 安裝 openMPI |
| 55 | | * MPI 環境設定 (帳戶 ssh-keygen) |
| 56 | | * |
| | 129 | $ mpdtrace |
| | 130 | }}} |
| | 131 | * 測試指令 |
| | 132 | {{{ |
| | 133 | $ mpiexec -n 3 hostname |
| | 134 | }}} |
| | 135 | * 測試 MPI 程式 |
| | 136 | {{{ |
| | 137 | $ mpicc -o cpi cpi.c |
| | 138 | }}} |
| | 139 | * 執行 MPI 程式 |
| | 140 | {{{ |
| | 141 | $ mpiexec -n 3 ./cpi |
| | 142 | }}} |