EPM engine machine setup
Hardware prerequisites
Network connection : preferably 1000 Mbit/sec.
Memory requirements: if L is the number of (hybrid) links (in millions), then the memory (in Mb) needed tu run the epm engine is roughly:
50 L + 15
For instance, 800 000 links require 55 Mb, which easily fits into the small memory of a Raspberry pi SBC.
A list of reasonable SBC hardware is compared here.
A high end option is Parallela from Adapteva.
Software Prerequisites
- Linux (ubuntu preferably)
- bash
- rsh
- remote desktop viewer
- NFS client and server (sudo apt-get install nfs-common nfs-server)
- JRE (or JDK), for instance OpenJdk 7 (only for epm Java engine, not for epm C engine)
- gcc compiler (only for epm C engine, not for epm Java engine)
Step 1
Runs on a source machine (which is a "full Assothink machine", according to Matscape's standards (MMU (or MMV or MMM))).
Uses directory /media/server.Alex.MMU/epm/ (the 'epm reference dir', refdir)
The script is epm preinstall .
It creates several system files under directory $refdir/install/ .
This has to be done just once if many machines have to be installed.
Step 2
On the target machine:
- set host name MMn
- define a user (standard name and password)
- set IP address and check network accessibility
- NFS export $HOME directory ( /etc/exports)
- NFS mount /media/server.Alex.MMU/
- replicate /etc/hosts file (from refdir/install), check the hosts pingability
- replicate /etc/fstab.matscape.local file, replicate it at the end of fstab
- check the auto mounting of /media/server.Alex.MMU/ /media/MMU/ and /media/MMM/ at least
- run script /media/MMU/Scripts/epm install (it replicates into target machine .bashrc, .alex, Scripts dir, assothink.epm dir...)
- restart new bash instance
- check clock network synchro
- setup and check accessibility of target machine through "Remote Desktop Viewer"
- check generic things
- check epm java engine process (epm java engine mainly) (epm J)
- compile C version of epm (epm gcc), check epm C engine (epm C)
- launch epm daemon (epm d)
Step 3
On the source machine:
- check NFS access to target machine
- check access to remote machine using rsh
- check access to remote machine through "Remote Desktop Viewer"
- launch epm controller
- check performance of new machine (java and C)
Notes for Raspberry Pi install
- Setup initial screen : "expand rootfs"
- Setup initial screen : "ssh server" ... enabled
- Setup initial screen : Update rasp config
- Setup initial screen : Change timezone... Brussels
- Setup initial screen : finish
- login as pi (password raspberry)
- reboot
- note IP address and check remote ssh access to this hostqq
- login again as pi (from remote machine, using IP address as target)
- sudo useradd -d /home/pge -m pge
- sudo passwd pge
- sudo passwd pi
- sudo visudo (add a last line to allow pge to sudo)
- sudo apt-get install nfs-kernel-server openjdk-7-jdk
- sudo vi /etc/hostname (change to MMx)
- sudo /etc/init.d/hostname.sh start
- sudo vi /etc/hosts (1: change raspberry to MMx ; 2: add 6 standard hosts lines)
- sudo vi /etc/fstab (add 2 lines at the end, similar to those of other machines)
- sudo vi /etc/network/interfaces (modify 1 line, add 3 new):
- iface eth0 inet static
- address 192.168.100.xxx
- netmask 255.255.255.0
- gateway 192.168.100.2
- sudo reboot
- remote login as pge
- try the NFS access from installed machine to remote dirs
- sudo mkdir -m 777 /media/xxx to create mountable dirs
- mount /media/xxx to mount remote dirs
- sudo mkdir -m 777 /media/xxx to create mountable dirs
- sudo vi /etc/exports (add line : export /home/pge)
- reboot
- (from here, everything done from remote hosts, using logto MMx, with login pge)
- create the Scripts directory in /home/pge, and copy there the whole files from MMM
- add this line at the end of .bashrc
- . ~/Scripts/bashrc
- ramdisk (create local ram filesystem
- check the served and serving NFS connections
- check epm gcc
- try epm J T 100
- try epm C T 100