Made by: Paul Gleason, Matt Compton
This project is to hold our scripts and configs to configure multilocal computing using Chapel.
- Learn more about Chapel and parallel computing
- Make scripts to setup client and controller install scripts
- client-install.sh
- controller-install.sh
- Have connectivity between nodes and controller
- Figure out multinode configuration
- Test benchmark
- Make weather prediction application
- Have fully running weather prediction
- 6 Static IP's
- 6 Updated Debian machine
- sudo user
- OS: Debian 11
- Number of Nodes: 1
- Hosts file to contain nodes
- OS: Debian 11
- Number of Nodes: 5
- Host file to contain other nodes and controller
- Be in the a users home directory.
wget https://raw.githubusercontent.com/ChampPG/Beowulf-Cluster/main/controller-install.sh
chmod +x controller-install.sh
./controller-install.sh
- If you already have ssh-keys generated This won't pop up
- Configure SSH-Keys how you would like
- Enter
- Now script will update debian and install Chapel Prerequisites.
- Be in the a users home directory.
wget https://raw.githubusercontent.com/ChampPG/Beowulf-Cluster/main/client-install.sh
chmod +x client-install.sh
./client-install.sh
- If you already have ssh-keys generated This won't pop up
- Configure SSH-Keys how you would like
- Enter
sudo hostnamectl set-hostname controller
- Rename machine- Configure /etc/hosts
ssh-keygen
- Generate SSH keys- Install Prerequisites
sudo apt-get update sudo apt-get install gcc g++ m4 perl python3 python3-dev bash make mawk git pkg-config cmake sudo apt-get install llvm-dev llvm clang libclang-dev libclang-cpp-dev libedit-dev
wget https://github.com/chapel-lang/chapel/releases/download/1.29.0/chapel-1.29.0.tar.gz
- wget Chapel-1.29.0.tar.gztar xzf chapel-1.29.0.tar.gz
- untar ball Chapel-1.29.0cd chapel-1.29.0
- Enter Chapel dirsource util/setchplenv.bash
- Set sourcesudo make
- Compiler Chapel | Will take some time..../util/printchplenv
- Show current Chapel environmentexport CHPL_HOME=/home/<user>/chapel-1.29.0.tar.gz
- Set CHPL_HOMEexport CHPL_COMM=gasnet
- Set CHPL_COMMcd $CHPL_HOME
- Enter $CHPL_HOMEmake
- Recompilechpl -o hello $CHPL_HOME/examples/hello6-taskpar-dist.chpl
- Make hello programexport GASNET_SPAWNFN=S
- Set GASNET_SPAWNFNexport GASNET_SSH_SERVERS="node1 node2 ..."
- Set GASNET_SSH_SERVER
sudo hostnamectl set-hostname node<XX>
- Rename machine- Configure /etc/hosts
ssh-keygen
- Generate SSH keys- Install Prerequisites
sudo apt-get update sudo apt-get install gcc g++ m4 perl python3 python3-dev bash make mawk git pkg-config cmake sudo apt-get install llvm-dev llvm clang libclang-dev libclang-cpp-dev libedit-dev
wget https://github.com/chapel-lang/chapel/releases/download/1.29.0/chapel-1.29.0.tar.gz
- wget Chapel-1.29.0.tar.gztar xzf chapel-1.29.0.tar.gz
- untar ball Chapel-1.29.0cd chapel-1.29.0
- Enter Chapel dirsource util/setchplenv.bash
- Set sourcesudo make
- Compiler Chapel | Will take some time..../util/printchplenv
- Show current Chapel environmentexport CHPL_HOME=/home/<user>/chapel-1.29.0.tar.gz
- Set CHPL_HOMEexport CHPL_COMM=gasnet
- Set CHPL_COMMcd $CHPL_HOME
- Enter $CHPL_HOMEmake
- Recompilechpl -o hello $CHPL_HOME/examples/hello6-taskpar-dist.chpl
- Make hello programexport GASNET_SPAWNFN=S
- Set GASNET_SPAWNFNexport GASNET_SSH_SERVERS="controller node1 node2 ..."
- Set GASNET_SSH_SERVER | Test without doing this step first as well. For this step make sure not to put the current node in the list