Open main menu

Changes

Run relax at Google Cloud Computing

1,763 bytes added, 12:47, 27 October 2017
Switch to the {{relax source}} and {{relax url}} templates for the code URLs.
The [https://en.wikipedia.org/wiki/Google_Cloud_Platform Google Cloud Platform] is a cloud computing platform that can be used for cheaply running relax on a cluster.
 
== Background ==
This follows the same idea as from [[Run_relax_at_cloud.sagemath.com|Run relax at cloud.sagemath.com]]
gcloud compute zones list
gcloud compute machine-types list | grep us-central1-f
gcloud compute machine-types list | grep us-central1-f | sort -k3 -n
gcloud compute images list
# Create instance
gcloud compute instances create relax --zone us-central1-f --machine-type n1-highcpu-8 4 --image ubuntu-14-04 --boot-disk-size 10GB
gcloud compute instances list
 
# Or
gcloud compute instances create relax --zone us-central1-f --machine-type n1-highcpu-4 --image rhel-6-v20160921 --boot-disk-size 10GB
 
</source>
PROJ=relax-1
ZONE=us-central1-f
PRID=relaxinstance-1
GCC=gcc
gcloud compute --project $PROJ ssh --zone $ZONE $PRID
 
gcloud compute --project "relax-1" ssh --zone "us-central1-f" "instance-1"
</source>
For '''rapid deployment''' use this command. This will install current version of relax and trunk.
[http://svn.gna.org/viewcvs/See the list of deploy scripts here*checkout*/{{relaxurl|path=devel_scripts/trunkdeploy_scripts/devel_scripts/deploy_google_computing_ubuntu}} Then download the script that matches the system.{{#tag: source|# Select a version script# Redhat Version 6VERS=deploy_google_computing_redhat_6_86_x64.sh?content-typeVERS=text%2Fplain See the install script here]deploy_google_computing_redhat_6_86_x64_upgrade_python.sh# Centos Version 6<source langVERS="bash">deploy_google_computing_centos_6_86_x64_upgrade_python.sh# Redhat Version 7URLVERS=http://svndeploy_google_computing_redhat_7_86_x64.gnash# UbuntuVERS=deploy_google_computing_ubuntu_14-04_86_x64.org/viewcvs/*checkout*/sh # Then set download URLURL={{relaxurl|path=devel_scripts/trunkdeploy_scripts/devel_scripts/deploy_google_computing_ubuntu.sh$VERS|view=raw}} #eval "Download and readlsudo yum -y install wgetwget $(curl "URL $URL")"VERSwget mv $VERS* $URLVERScat deploy_google_computing_ubuntu.sh$VERS # Load functionssource deploy_google_computing_ubuntu.sh$VERS
# See functionscat deploy_google_computing_ubuntu.shDo installation
installandcheck
</source>| lang="bash"}} 
'''Check installation of relax'''
{{#tag:source|
mpirun --np 8 2 relax_trunk --multi='mpi4py'
relax_trunk --time -x
|lang="bash"
}}
 
== Test openmpi ==
 
For BASH shell<br>
{{relax source|path=devel_scripts/openmpi_test_install_bash.sh|view=raw|text=See the script here}}
{{#tag: source|
URL={{relax url|path=devel_scripts/openmpi_test_install_bash.sh|view=raw}}
wget $URL
mv openmpi_test_install_bash.sh* openmpi_test_install_bash.sh
 
# Source functions
source openmpi_test_install_bash.sh
testopenmpi
| lang="bash"
}}
 
For TCSH shell<br>
{{relax source|path=devel_scripts/openmpi_test_install_tcsh.sh|view=raw|text=See the script here}}
{{#tag: source|
alias get 'set noglob; wget {{relax url|path=devel_scripts/openmpi_test_install_tcsh.sh|view=raw}}; mv openmpi_test_install_tcsh.sh* openmpi_test_install_tcsh.sh;unset noglob'
get
 
# Source functions
source openmpi_test_install_tcsh.sh
| lang="bash"
}}
 
==Transfer files back and forth to the server==
This will start a browser to authenticate you. When it ask for a ID, just write "test" and say no to cloning.
Then go to:=== ssh-config with gcloud ===* See https://console.developerscloud.google.com/sdk/gcloud/reference/compute* In the line of relax, click SSH, and drop down to: '''View gcloud command'''./config-ssh
It could look like this. Try this in your own terminal. This should make some SSH keys and bring you to the server<source lang="bash">gcloud compute config--project "relax-1" ssh --zone "us-central1-f" "relax"</source> This should bring you makes SSHing to virtual machine instances easier by adding an alias for each instance to the google server.<source lang="bash">lscpucat $HOME/.ssh/authorized_keys exit # At your own computerls -l $HOME/.ssh/google*cat $HOMEuser SSH configuration (~/.ssh/configssh-add -lssh-add $HOME/.ssh/google_compute_enginessh-add -l</source> === Copy files ===See: https://cloud.google) file.com/sdk/gcloud/reference/compute/copy-files
The ssh command was
<source lang="bash">
bash
PROJ=relax-1
ZONE=us-central1-f
PRID=relax
GCC=gcc
gcloud compute --project $PROJ ssh --zone $ZONE $PRID
exit
</source>
 
We make a test file on our local conouter and copy it
<source lang="bash">
touch test.txt
gcloud compute --project $PROJ copy-files test.txt $PRID:~ --zone $ZONE
 
# Try a directory
mkdir testdir
cp test.txt testdir
gcloud compute --project $PROJ copy-files testdir $PRID:~ --zone $ZONE
 
# Back again
cd testdir
gcloud compute --project $PROJ copy-files $PRID:~/testdir . --zone $ZONE
</source>
 
=== ssh-config with gcloud ===
See https://cloud.google.com/sdk/gcloud/reference/compute/config-ssh
 
gcloud compute config-ssh makes SSHing to virtual machine instances easier by adding an alias for each instance to the user SSH configuration (~/.ssh/config) file.
 
<source lang="bash">
gcloud compute --project $PROJ config-ssh
cat $HOME/.ssh/config
 
# ssh in
ssh $PRID.$ZONE.$PROJ
exit
# Use sed to change value of your local computes ssh config file
grep "$PRID.$ZONE.$PROJ" $HOME/.ssh/config
sed "s/$PRID.$ZONE.$PROJ/$GCC/g" $HOME/.ssh/config
sed -i.bak "s/$PRID.$ZONE.$PROJ/$GCC/g" $HOME/.ssh/config
ls -l $HOME/.ssh/config*
{{#tag:source|
#First fast check
cd $HOME/Downloads
touch test2.txt
scp test2.txt $GCC:
ssh $GCC
ls
rm test2.txt
exit
rm test2.txt
# Or use rsync
mkdir dirtestdeletethisdirrsync --progress -avzhe ssh ./dirtest deletethisdir $GCC:
ssh $GCC
ls
rmdir dirtestdeletethisdir
exit
rmdir deletethisdir
|lang="bash"
}}
 
== Use relax on a test dataset from a tutorial ==
This follows some example data from the tutorial here [[Tutorial_for_sorting_data_stored_as_numpy_to_on-resonance_R1rho_analysis|Tutorial for sorting data stored as numpy to on resonance R1rho_analysis]]
 
{{relax source|path=test_suite/shared_data/dispersion/Paul_Schanda_2015_Nov|text=Overview of directory}}
 
Copy data to local dir
{{#tag:source|
cd $HOME
cp -r $HOME/relax_trunk/test_suite/shared_data/dispersion/Paul_Schanda_2015_Nov .
cd Paul_Schanda_2015_Nov
|lang="bash"
}}
 
 
{{relax source|path=test_suite/shared_data/dispersion/Paul_Schanda_2015_Nov/1_tutorial_prepare_data.py|text=Prepare data}}
{{#tag:source|
cat 1_tutorial_prepare_data.py
python 1_tutorial_prepare_data.py
ls -latr
|lang="bash"
}}
 
{{relax source|path=test_suite/shared_data/dispersion/Paul_Schanda_2015_Nov/2_tutorial_load_data.py|text=Run analysis}}
{{#tag:source|
cat 2_tutorial_load_data.py
mpirun --np 2 relax_trunk --multi='mpi4py' 2_tutorial_load_data.py
ls -latr
|lang="bash"
}}
 
{{relax source|path=test_suite/shared_data/dispersion/Paul_Schanda_2015_Nov/3_tutorial_clustered.py|text=Run clustered analysis}}
 
{{#tag:source|
cat 3_tutorial_clustered.py
mpirun --np 2 relax_trunk --multi='mpi4py' 3_tutorial_clustered.py
ls -latr
|lang="bash"
}}
 
See results
{{#tag:source|
cd results_cluster/final
ls -latr
cat phi_ex.out
cat kex.out
|lang="bash"
}}
===By terminal===
<source lang="bash">
PROJ=relax-1
ZONE=us-central1-f
PRID=relax
GCC=gcc
 
# Get at list of projects
gcloud compute --project $PROJ instances list
==Deploy google datalab to your server==
{{warning|This does not work}}
 
Read more here: http://techcrunch.com/2015/10/13/google-launches-cloud-datalab-an-interactive-tool-for-exploring-and-visualizing-data
See Location at: https://appengine.google.com/
Start Stop your server:
<source lang="bash">
gcloud compute --project $PROJ instances start stop --zone $ZONE $PRIDssh $GCC
</source>
Cloud Datalab is deployed as an Google App Engine application module in a Google Developers Console project. <br>
[https://console.developers.google.com/flows/enableapi?apiid=compute_component&redirect=https://console.developers.google.com/&_ga=1.74861778.1584957856.1448496848 Click here to → Enable the Google Compute Engine API.]
* Launch datalab
* Sign in
* Deploy to your project. This takes '''10 min.'''
== See also ==
[[Category:Installation]]
Trusted, Bureaucrats
4,223

edits