| 7 | 1/1 | 返回列表 |
| 查看: 3270 | 回復(fù): 6 | |||
zhangguangping木蟲 (著名寫手)
|
[交流]
Molpro2012.1p13在openSUSE 10.2上安裝的曲折歷程 已有3人參與
|
|
————記錄此文,以備忘。 WARNING:升級glic-2.7的慘痛教訓(xùn):集群有很多臺計算節(jié)點,節(jié)點的系統(tǒng)安裝的都是一樣的。因此,升級glibc2.7時在其中一臺上編譯一直到make install,升級成功。ssh到別的計算節(jié)點之后,到glibc2.7的目錄下,直接執(zhí)行make install安裝。大部分節(jié)點都成功升級了。但是有2臺節(jié)點失敗了。出現(xiàn)segment fault,并且ssh立馬斷開了。再次ssh,顯示ssh_exchange_identification: Connection closed by remote host。從此,再也沒有登陸上這兩臺節(jié)點。到機器房登陸也登陸不進去。最后沒辦法重啟節(jié)點,結(jié)果可想而知,重啟失敗。后來想到這兩臺節(jié)點的時間設(shè)置的是8年前的時間(由于某些軟件的原因),這種節(jié)點我們還有一臺。因此,去第三臺這樣的節(jié)點,先把系統(tǒng)時間修改成當下時間,然后make install,陳功升級glibc.因此,猜測上面兩臺機器升級glibc失敗的原因是系統(tǒng)時間遠遠落后于glibc編譯目錄的時間。 前幾天,需要將Molpro 2012.1.p13安裝到小組的計算集群上。首先介紹一下集群的基本情況。管理節(jié)點node00安裝是openSUSE 11.2 (SUSE Linux Enterprise Server 11.2),而所有的計算節(jié)點是openSUSE 10.2或者10.4 (SUSE Linux Enterprise Server 10.2 or 10.4)。不要噴我們的這種構(gòu)架,因為集群購買先后順序不一樣,最后整合到一起使用,所以導(dǎo)致了這樣的局面。 在這樣的構(gòu)架下,選擇到計算節(jié)點編譯molpro代碼。不管用intel Compiler 11.1-072帶的ifort icc以及icpc編譯還是用gfortran和gcc編譯,在計算節(jié)點上總是不能順利congfigure完成。最后只能到node00節(jié)點上嘗試編譯。發(fā)現(xiàn)在node00節(jié)點上編譯非常順利。編譯步驟如下(root用戶): ===================== 1.配置環(huán)境變量 source /home/software/intel/Compiler/11.1/072/bin/ifortvars.sh intel64 source /home/software/intel/Compiler/11.1/072/bin/iccvars.sh intel64 2.解壓壓縮包 tar -zxvf molpro.2012.1.13.tar.gz 3.配置編譯參數(shù) cd Molpro ./configure -j 6 -icc -ifort -x86_64 -mpp -noblas -nolapack -auto-ga-openmpi 上述的參數(shù)含義,可以從Installation Guide Version 2012.1得到詳細解釋。 在運行上述命令之前,需要在$HOME下面建立.molpro目錄存放token文件。 mkdir ~/.molpro 然后將token文件拷貝到該目錄下。同時,安裝過程需要下載openmpi-1.8和boost_1_55_0.tar.gz,如果機器不能聯(lián)網(wǎng),那么自己從網(wǎng)上下載openmpi-1.8.tar.gz和boost_1_55_0.tar.gz放到~/.molpro/cache目錄下面。 4.編譯代碼 make -j 6 2>&1 | tee make.log 5. 安裝編譯文件 make install =========================== 到此為止,編譯順利完成。 測試:/home/software/molpro2012.1p13/molprop_2012_1_Linux_x86_64_i8/bin/molpro -n 2 -d ./ -W ./ form_freq.com 上述測試在node00上能夠順利完成。但是到計算節(jié)點進行上述測試,出現(xiàn): /home/software/molpro2012.1.13/molprop_2012_1_Linux_x86_64_i8/src/openmpi-install/bin/mpirun: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by /home/software/molpro2012.1.13/molprop_2012_1_Linux_x86_64_i8/src/openmpi-install/bin/mpirun) 然后ldd --version發(fā)現(xiàn)計算節(jié)點的glibc的版本是2.4. 沒有辦法,只能在計算節(jié)點安裝glibc 2.7 安裝glibc 2.7參考http://www.cnblogs.com/ivanfu/archive/2012/02/12/2348043.html 1.下載glibc 2.7 http://ftp.gnu.org/pub/gnu/glibc/glibc-2.7.tar.gz 2. tar zxvf glibc-2.7.tar.gz 3. mkdir glibc-build cd glibc-build 4. ../glibc-2.7/configure --prefix=/usr 5.make 6. make check 7. make install 其中第6步的make check很重要,最好確保所有的測試都通過。否則安裝網(wǎng)上說的,glibc的升級很容易導(dǎo)致系統(tǒng)崩潰,那么升級就沒有意義了,只能重裝系統(tǒng)了。 到此為止,glibc 2.7安裝好了,然后再測試molpro出現(xiàn): /home/software/molpro2012.1p13/molprop_2012_1_Linux_x86_64_i8/bin/molpro.exe: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /home/software/molpro2012.1p13/molprop_2012_1_Linux_x86_64_i8/bin/molpro.exe) 執(zhí)行strings /usr/lib/libstdc++.so.6 | grep GLIBC如下,就是沒有GLIBCXX_3.4.9: GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBC_2.0 GLIBC_2.3 GLIBC_2.4 GLIBC_2.3.4 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH 到網(wǎng)上一陣狂搜,幾乎沒有找到解決這個的辦法。 按照http://jamesbond0479.blog.163.co ... 582010712104140781/提出的辦法,從網(wǎng)上下載相應(yīng)版本的libstdc++.so.6.10, rm /usr/lib64/libstdc++.so.6 ln -s /usr/lib64/libstdc++.so.6.0.10 /usr/lib64/libstdc++.so.6 rm /usr/lib/libstdc++.so.6 ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6 雖然可以解決 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found的問題,可以使molpro能在計算節(jié)點上正常運行,但是后來你會發(fā)現(xiàn),在計算節(jié)點上云去編譯軟件的時候,總是提示會提示: configure error c and c++ compilers are not link compatible. cannot continue 并且看具體原因是:/usr/lib64/gcc/x86_64-suse-linux/4.1.2/libstdc++.so: file not recognized: File format not recognized 因此,猜測是上面手動添加libstdc++.so.6.0.10導(dǎo)致,重新還原回去: rm /usr/lib64/libstdc++.so.6 ln -s /usr/lib64/libstdc++.so.6.0.8 /usr/lib64/libstdc++.so.6 rm /usr/lib/libstdc++.so.6 ln -s /usr/lib/libstdc++.so.6.0.8 /usr/lib/libstdc++.so.6 發(fā)現(xiàn)configure error c and c++ compilers are not link compatible. cannot continue的問題不再出現(xiàn)。因此,斷定上述手動添加libstdc++.so.6.0.10的辦法是不可靠的。這也正如http://liuzhigong.blog.163.com/blog/static/178272375201333155126/文中所提到的。 但是,由于當時沒看到這個文檔,所以沒有按照該文檔去升級glibc 2.7. 到目前為止,node00編譯的molpro還是不能在計算節(jié)點運行。后來想到,原來計算節(jié)點不能編譯molpro 2012是不是就是因為glibc版本過低的問題呢? 重新到升級好glibc 2.7的計算節(jié)點按照上述在node00的編譯步驟,順利編譯通過。并且編譯出來的可執(zhí)行文件可以在node00成功計算,并且在升級好glibc 2.7的計算節(jié)點也能正常計算,不再出現(xiàn)version `GLIBCXX_3.4.9' not found的問題。 總結(jié):molpro 2012.1.13的編譯需要用到glibc 2.7,至少glibc 2.4是不能行的(glibc 2.5 glibc 2.6不清楚是否可以)。 最后奉上另外一個帖子:http://www.cppblog.com/sunicdavy/archive/2012/04/20/172108.html 帖子中提到解決此類問題的另外一個方法: 還有一種方法,使用靜態(tài)鏈接. 將所有可執(zhí)行文件文件依賴的靜態(tài)庫, 系統(tǒng)庫,全部靜態(tài)鏈接到可執(zhí)行文件中,可以一次性解決這個問題 步驟: 1. 在gcc鏈接命令行中添加-static -static-libgcc -static-libstdc++ 2. 將第三方依賴庫打開靜態(tài)鏈接開關(guān), 將原來鏈接.so的庫,全改為鏈接.a 3. gcc對鏈接庫順序很敏感, 鏈接庫順序需要按照從前至后為: 項目產(chǎn)生的靜態(tài)庫 > 第三方庫靜態(tài)庫 > 系統(tǒng)靜態(tài)庫 4. 鏈接時, 若有未解決的symbol, 可以嘗試在最后添加-lpthread及-lrt解決 上述方法,沒有去實踐。因為對于一個較大的程序,步驟2較難實現(xiàn)。 [ Last edited by zhangguangping on 2014-6-27 at 16:41 ] |

專家顧問 (職業(yè)作家)
地溝油冶煉專家
![]() |
專家經(jīng)驗: +458 |

木蟲 (著名寫手)
|
大牛光顧,蓬蓽生輝啊。 普通用戶也可以自己安裝。 http://hi.baidu.com/bjfk1900/item/3e9c4db9e49967422bebe324 這個安裝完畢后的配置,我沒有看懂。最后沒辦法,直接用root冒著風險升級了。幸好,安裝完畢后,系統(tǒng)沒有崩潰。 |

木蟲 (著名寫手)

鐵桿木蟲 (正式寫手)
木蟲 (著名寫手)

| 7 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 300求調(diào)劑,材料科學(xué)英一數(shù)二 +8 | leaflight 2026-03-24 | 8/400 |
|
|---|---|---|---|---|
|
[考研] 一志愿哈爾濱工業(yè)大學(xué)材料與化工方向336分 +9 | 辰沐5211314 2026-03-26 | 9/450 |
|
|
[考研] 22408 359分調(diào)劑 +4 | Qshers 2026-03-27 | 5/250 |
|
|
[考研] 083000學(xué)碩274求調(diào)劑 +8 | Li李魚 2026-03-26 | 8/400 |
|
|
[考研] 081200-314 +3 | LILIQQ 2026-03-27 | 4/200 |
|
|
[考研] 材料求調(diào)劑一志愿哈工大324 +7 | 閆旭東 2026-03-28 | 9/450 |
|
|
[考研] 352分 化工與材料 +5 | 海納百川Ly 2026-03-27 | 5/250 |
|
|
[考研] 070300化學(xué)求調(diào)劑 +4 | 起個名咋這么難 2026-03-27 | 4/200 |
|
|
[考研] 086000調(diào)劑 +3 | 7901117076 2026-03-26 | 3/150 |
|
|
[考研] 265求調(diào)劑11408 +3 | 劉小鹿lu 2026-03-27 | 3/150 |
|
|
[考研]
|
18419759900 2026-03-25 | 8/400 |
|
|
[考研] 274求調(diào)劑 +17 | 顧九笙要謙虛 2026-03-24 | 23/1150 |
|
|
[考研] 085600,材料與化工321分調(diào)劑 +4 | 大饞小子 2026-03-27 | 6/300 |
|
|
[考研] 342求調(diào)劑 +3 | 加油a李zs 2026-03-26 | 3/150 |
|
|
[考研] 考研一志愿蘇州大學(xué)初始315(英一)求調(diào)劑 +3 | sbdksD 2026-03-24 | 4/200 |
|
|
[考研] 【2026考研調(diào)劑】制藥工程 284分 求相關(guān)專業(yè)調(diào)劑名額 +4 | 袁奐奐 2026-03-25 | 8/400 |
|
|
[考研] 求調(diào)劑 +3 | 李李不服輸 2026-03-25 | 3/150 |
|
|
[考研] 求調(diào)劑一志愿武漢理工大學(xué)材料工程(085601) +5 | WW.' 2026-03-23 | 7/350 |
|
|
[考研] 材料/農(nóng)業(yè)專業(yè),07/08開頭均可,過線就行 +3 | 呵唔哦豁 2026-03-23 | 4/200 |
|
|
[考研] 280分求調(diào)劑 一志愿085802 +4 | PUMPT 2026-03-22 | 7/350 |
|