質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

2264閲覧

Linuxにて自動並列計算をさせたいです。

amateur_PGM

総合スコア25

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2016/08/21 10:23

###前提・実現したいこと
Linuxにて並列計算をさせたいです。そこで、"1-1_equi_423K", "1-1-1_equi423K", "1-1-1-1_normalequi_423K","1-1-1-1-1_run"という各フォルダにて、この順に計算結果のファイルを読んで次のフォルダに移り計算を実行する、これを繰り返したいです。その操作をコマンド一個で行えるとうれしいです。

###発生している問題・エラーメッセージ

sakkalab-ws-h25@sakkalab-ws-h25:/mnt/Volume-WD3000/DL_POLY/dl_class_1.9/Arai/C4mimTFSA_bulk$ mpirun -np 8 ./auto_dl_poly2.sh
./auto_dl_poly2.sh: 6: ./auto_dl_poly2.sh: Dir0[0]=1-1_equi_423K: not found
./auto_dl_poly2.sh: 7: ./auto_dl_poly2.sh: Dir0[1]=1-1-1_equi_423K: not found
./auto_dl_poly2.sh: 6: ./auto_dl_poly2.sh: Dir0[0]=1-1_equi_423K: not found
./auto_dl_poly2.sh: 7: ./auto_dl_poly2.sh: Dir0[1]=1-1-1_equi_423K: not found
./auto_dl_poly2.sh: 8: ./auto_dl_poly2.sh: Dir0[2]=1-1-1-1_normalequi_423K: not found
./auto_dl_poly2.sh: 8: ./auto_dl_poly2.sh: Dir0[2]=1-1-1-1_normalequi_423K: not found
./auto_dl_poly2.sh: 9: ./auto_dl_poly2.sh: Dir0[3]=1-1-1-1-1_run_423K: not found
./auto_dl_poly2.sh: 9: ./auto_dl_poly2.sh: Dir0[3]=1-1-1-1-1_run_423K: not found
Directory names
Directory names
./auto_dl_poly2.sh: 6: ./auto_dl_poly2.sh: Dir0[0]=1-1_equi_423K: not found
./auto_dl_poly2.sh: 7: ./auto_dl_poly2.sh: Dir0[1]=1-1-1_equi_423K: not found
./auto_dl_poly2.sh: 8: ./auto_dl_poly2.sh: Dir0[2]=1-1-1-1_normalequi_423K: not found
./auto_dl_poly2.sh: 6: ./auto_dl_poly2.sh: Dir0[0]=1-1_equi_423K: not found
./auto_dl_poly2.sh: 9: ./auto_dl_poly2.sh: Dir0[3]=1-1-1-1-1_run_423K: not found
Directory names
./auto_dl_poly2.sh: 6: ./auto_dl_poly2.sh: Dir0[0]=1-1_equi_423K: not found
./auto_dl_poly2.sh: 7: ./auto_dl_poly2.sh: Dir0[1]=1-1-1_equi_423K: not found
./auto_dl_poly2.sh: 7: ./auto_dl_poly2.sh: Dir0[1]=1-1-1_equi_423K: not found
./auto_dl_poly2.sh: 8: ./auto_dl_poly2.sh: Dir0[2]=1-1-1-1_normalequi_423K: not found
./auto_dl_poly2.sh: 8: ./auto_dl_poly2.sh: Dir0[2]=1-1-1-1_normalequi_423K: not found
./auto_dl_poly2.sh: 9: ./auto_dl_poly2.sh: Dir0[3]=1-1-1-1-1_run_423K: not found
./auto_dl_poly2.sh: 9: ./auto_dl_poly2.sh: Dir0[3]=1-1-1-1-1_run_423K: not found
Directory names
Directory names
./auto_dl_poly2.sh: 6: ./auto_dl_poly2.sh: Dir0[0]=1-1_equi_423K: not found
./auto_dl_poly2.sh: 7: ./auto_dl_poly2.sh: Dir0[1]=1-1-1_equi_423K: not found
./auto_dl_poly2.sh: 8: ./auto_dl_poly2.sh: Dir0[2]=1-1-1-1_normalequi_423K: not found
Directory names
./auto_dl_poly2.sh: 9: ./auto_dl_poly2.sh: Dir0[3]=1-1-1-1-1_run_423K: not found
./auto_dl_poly2.sh: 6: ./auto_dl_poly2.sh: Dir0[0]=1-1_equi_423K: not found
./auto_dl_poly2.sh: 7: ./auto_dl_poly2.sh: Dir0[1]=1-1-1_equi_423K: not found
./auto_dl_poly2.sh: 8: ./auto_dl_poly2.sh: Dir0[2]=1-1-1-1_normalequi_423K: not found
./auto_dl_poly2.sh: 9: ./auto_dl_poly2.sh: Dir0[3]=1-1-1-1-1_run_423K: not found
Directory names
./auto_dl_poly2.sh: 6: ./auto_dl_poly2.sh: Dir0[0]=1-1_equi_423K: not found
./auto_dl_poly2.sh: 7: ./auto_dl_poly2.sh: Dir0[1]=1-1-1_equi_423K: not found
./auto_dl_poly2.sh: 8: ./auto_dl_poly2.sh: Dir0[2]=1-1-1-1_normalequi_423K: not found
./auto_dl_poly2.sh: 9: ./auto_dl_poly2.sh: Dir0[3]=1-1-1-1-1_run_423K: not found
Directory names
./auto_dl_poly2.sh: 1: eval: Bad substitution
./auto_dl_poly2.sh: 1: eval: Bad substitution
./auto_dl_poly2.sh: 1: eval: Bad substitution
./auto_dl_poly2.sh: 1: eval: Bad substitution
./auto_dl_poly2.sh: 1: eval: Bad substitution
./auto_dl_poly2.sh: 1: eval: Bad substitution
./auto_dl_poly2.sh: 1: eval: Bad substitution
./auto_dl_poly2.sh: 1: eval: Bad substitution

===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 2
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES

###該当のソースコード
#!/bin/bash

Dir0[0]="1-1_equi_423K"
Dir0[1]="1-1-1_equi_423K"
Dir0[2]="1-1-1-1_normalequi_423K"
Dir0[3]="1-1-1-1-1_run_423K"

#Dir1[0]="2-1"
#Dir1[1]="2-2"
#Dir1[2]="2-3"

node=8

DirMax=0 #Dir?[0]の?のMax
DirEach=3 #Dir0[?]の?のMax

Directory name readed

echo "Directory names"
for i in seq 0 ${DirMax}
do
for j in seq 0 ${DirEach}
do
tmp="{Dir${i}[${j}]}"
eval echo '$'$tmp
done
done
echo " "

Directory name check

for i in seq 0 ${DirMax}
do
for j in seq 0 ${DirEach}
do
if [ $? -eq 0 ]; then
tmp="{Dir${i}[${j}]}"
eval cd '$'$tmp
if [ $? -eq 0 ]; then
eval echo '$'$tmp "checked"
cd ../
else
eval echo "Directory error" '$'$tmp
exit 1
fi
fi
done
done

for i in seq 0 ${DirMax}
do
for j in seq 1 ${DirEach}
do
if [ $? -eq 0 ]; then
PrevDir="{Dir${i}[${j}-1]}"
CurDir="{Dir${i}[${j}]}"
eval cd '$'$CurDir
if [ $? -eq 0 ]; then
echo " "
eval echo '$'$CurDir" started"
eval echo "Copying "'$'$PrevDir"/REVCON"
eval cp ../'$'$PrevDir/REVCON ./CONFIG
echo "DL POLY run"
mpirun -np ${node} ./DLPOLY.X
if [ $? -ne 0 ]; then
eval echo '$'$CurDir" DL POLY calculation error"
cd ../
break
fi
cd ../
eval echo '$'$CurDir" finished"
else
eval echo "Directory error" '$'$tmp
exit 1
fi
fi
done
done

###試したこと
一つ一つ計算することは出来ました。
mpirun -np 8 ./DLPOLY.X
というコマンドで同じ計算を各フォルダで端末を開いて行うならば出来るのですが、計算に時間がかかることと、計算終了と同時に次の計算を行う(深夜など)ことが自動に出来たらうれしいです。

###補足情報(言語/FW/ツール等のバージョンなど)
Linuxです。宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

A.Ichi

2016/08/21 12:01

Dir0[]とdir1[]の関係はどのようなものでしょうか?並行処理の単位がdir1と言う事でしょうか?
amateur_PGM

2016/08/22 06:55

ご質問有難うございます。Dir0[]が終了した後に、dir1[]に移り計算を行いたいです。本当は二次元配列を用いて11,12などと指定したかったのですが、機械の性質上不可能なようです。各フォルダーに、REVCON,STATIS, HISTORY, CONFIGなどのファイルがあり、このファイルを書き換えて次のフォルダーへ移すということがしたいです。
guest

回答1

0

自己解決

解決いたしました。この質問をご確認くださいまして大変感謝しております。今後とも宜しくお願い致します。

投稿2016/08/23 09:02

amateur_PGM

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問