シェルスクリプトによるファイル編集に伴うコマンド群

毎度毎度調べながらじゃないとできなくてうんざりしたので。

  • 引数の数を知る

$#

  • 第1引数、第2引数、、、

$1, $2, ...

  • 全引数

$*, $@

[ -f ${FILE_NAME} ] && mv ${FILE_NAME} ${FILE_NAME}_old
[ -d ${APPLOG_DIR} ] && echo "Directory exists."

  • オプションを取得して、対応を記述する構文

while getopts dnfrl OPTION
do
case ${OPTION} in
a)
...
b)
...
...
esac
done

shift `expr $OPTIND - 1`

下部は引数を前詰めしている

  • コマンドの結果を変数に渡す

CURRENT_DIR = `pwd`

  • リストを対象としたfor構文

PRIME_NUM_LIST="2 3 5 7 11 13 17 19"
for pn in ${PRIME_NUM_LIST}
do
echo $pn
done

  • ファイルの任意の行を削除

sed -e ${LINE_NUMBER}d ${FILE_NAME}

  • ファイルの任意の行に追加

sed -e '${LINE_NUMBER}i ${CONTENTS}' ${FILE_NAME}

  • ファイルの内のある文字列が(最初に)現れた行数を返す

INSERT_NUMBER=`grep -n ${SEARCH_STRING} ${SEARCH_FILE} | sed -e 's/:.*//g' | head -n 1`

  • 変数内のある文字列を置換する変換

${HOGE//${foo}/${bar}}

${HOGE}に含まれる${foo}を${bar}に変換

  • リストを読み、変数に代入する

grep '^LIST_FLAG' ${INPUT_FILE}/$0 | while read v1 v2 v3 v4
do
echo $v2
echo $v4
done

例としては以下
(${INPUT_FILE内})

...
LIST_FLAG HOGE01 FOO01 BAR01
LIST_FLAG HOGE02 FOO02 BAR02
...

(出力例)

...
HOGE01
BAR01
HOGE02
BAR02
...

HPC wireの「Oracle Cloud Now Offers AMD Epyc Compute Instances」を読みました

HPC wire読みました記録をつけようと思う

www.hpcwire.com

- 概要

OracleAMDのEpycプロセッサを使用したクラウドサービスを提供すると発表。
Epyc搭載のクラウドは、Microsoft Azure, Baidu, Packet, SkySilkに次ぐ5社目。
アメリカのEast-Ashburn地区では本日(10/23)、ロンドンでは10月末、その他の欧米では今年末に提供する。

コア時間あたり$0.03で、他者サービスよりも安いとのこと。
Mercury Researchの最新レポートによるとAMDの市場シェア度は1.3%だが、
2018年末には5%に到達するとの見込みだそうだ。
Intel CEOのBrian Krzanich氏も、「AMDの市場シェア度を15~20%に抑えることが目標」と言及している。

1サーバに64コア搭載で既存のx86系より多数のメモリチャネルを提供する。
「多コア、高バンド幅を要するデータ解析に理想的」とのこと。
ここでいう高バンド幅を要するデータ解析とは、気象・数値流体力学計算、航空機・自動車の衝突解析、オイル・ガスの拡散計算のことを指す模様。
ベンチマークに10TB Terasort, Fluentによる14百万点規模の翼計算などを行い、いずれも既存サービスよりトータルコストを抑えられているとのこと。

- 雑感

初めてAMDのEpycのページを見たが、動画が挑戦的で面白かった。こんなに直接的にXeonとか言うものなのだな…。
https://www.amd.com/ja/products/epyc-server
youtu.be

本題とはまったく関係なくて恐縮だが、航空機の衝突解析って壁に突っ込む場合*1も広くやられていたのか。
バードストライク*2ばかりかと思っていた。

githubの導入時メモ

アカウントだけとって放置していたgithubを使用することにした。
手順は以下である。sshテストで躓いた……。

   yum -y install git
  • 認証鍵作成
   ssh-keygen -t rsa id_rsa_github
  • githubクライアント画面で公開鍵登録
  • 接続テスト

→ Permission denied. (publickey)となった。以下の方法で解決した。
https://qiita.com/koara-local/items/9cc615be6b4b60f5654d

   git clone git@github.com:iwturnedaiw/omp.git
  • マシンからソースのcommit, push
   git add nurmerical_integration
   git commit -m "コメント"
   git push -u origin master


ブランチの切り方などは今後覚えることにしよう。


入門として、以下がわかりやすかった。
employment.en-japan.com