Code Monkey home page Code Monkey logo

kgenprog-exp's Introduction

ここは

APRの実験スクリプト集.

APR実験における下記の雑多な作業をスクリプトとしてまとめた.

  • D4Jのクローンとビルド
  • KGPの〃
  • Astorの〃
  • KGP/Astorの実行

複数のDockerコンテナ上での実行を想定しているが,単一ホスト上でももちろん使える.

  • run.sh: docker実験コンテナの立ち上げスクリプト.
  • util.sh: メインスクリプト.先の雑多な作業(D4JのクローンとかAPRツールの実行)等まとめてる.
  • parse.py: APRツールの出力結果のパーサ.util.sh から利用してるので意識しなくても良い.

使い方

永続データ用のディレクトリ作成(10Gくらい使うので注意)

$ sudo mkdir -p /opt/apr-data

クローン

$ git clone [email protected]:kusumotolab/kGenProg-exp.git kgp-exp
$ cd kgp-exp

docker起動

$ bash run.sh apr

docker上でビルド

root@360a1f066293:~# source util.sh;
root@360a1f066293:~# build kgp
root@360a1f066293:~# build astor
root@360a1f066293:~# build d4j
root@360a1f066293:~# checkout math $(seq 1 106)

各種APR実行

root@360a1f066293:~# run math 85 kgp 1
root@360a1f066293:~# run math 73 genp 1

aws

ベース作成

sudo yum update -y
sudo yum install -y git
sudo yum install -y tmux
sudo amazon-linux-extras install docker -y
sudo service docker start

NVMeストレージのマウント

sudo mkfs -t ext4 /dev/nvme1n1
sudo mkdir /opt/apr-data
sudo mount /dev/nvme1n1 /opt/apr-data

dockerのパーミッション

sudo usermod -a -G docker ec2-user
exit

再ログイン

ssh ec2-user@...

astorのためのタイムゾーン設定

sudo timedatectl set-timezone Asia/Tokyo

dockerの設定

mkdir -p ~/.docker
echo '{"detachKeys": "ctrl-q"}' > ~/.docker/config.json

マシン固有の実験設定

echo 'export APR=astor'  >> ~/.bashrc
echo 'export SEED=1' >> ~/.bashrc
echo 'PS1="\e[37m\e[41m[aws $APR-$SEED]\e[0m\]$ "' >> ~/.bashrc
source ~/.bashrc

tmuxの設定

echo 'set -g prefix C-u' > ~/.tmux.conf

aprの実験準備

git clone https://github.com/kusumotolab/kGenProg-exp apr-exp
cd apr-exp
tmux
./run.sh

docker上で準備

# source util.sh ;
# build kgp; build astor; build d4j; checkout math $(seq 1 104);

実験実行

# source util.sh ;
# for i in {1..104}; do run math $i; done

細かいメモ

awsインスタンスのip

genp=(
    13.230.213.7
    13.230.160.85
    18.179.207.88
    13.231.119.253
    13.231.97.56
    13.231.157.145
    54.238.109.252
    54.178.17.35
    13.114.16.117
    13.115.43.0
    )
kgp=(
    52.194.236.208
    54.238.203.4
    13.112.136.252
    18.182.39.76
    13.115.253.105
    54.249.63.120
    52.68.33.92
    52.194.236.124
    54.64.0.228
    54.199.204.111
    )

実験結果の取り出し

$ /d/apr-exp/out/
$ for m in ${genp[@]}; do scp -C -i ~/.ssh/apr.pem ec2-user@$m:/opt/apr-data/out/* out-genp/; done
$ for m in ${kgp[@]};  do scp -C -i ~/.ssh/apr.pem ec2-user@$m:/opt/apr-data/out/* out-kgp; done

javaプロセスkill

ps -aux | grep java | grep apr-data | awk '{print $2}' | xargs sudo kill

全VMのapr実行をkill

for m in ${genp[@]}; do ssh -i ~/.ssh/apr.pem ec2-user@$m 'ps aux | grep java | grep apr-data | awk '\''{print $2}'\'' | xargs sudo kill ' ; done

docker kill all

docker kill $(docker ps -q)

前の実験結果クリア

sudo rm -rf /opt/apr-data/out/

(find /opt/apr-data/out/ -type f | sort | while read line do printf "$(basename $line) " cat $line | grep '^real' done ) | tee /tmp/x

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.