Code for AMICA: Adaptive Mixture ICA with shared component
Refer to the Amica wiki for documentation.
Refer also to Jason Palmer's AMICA page.
-
Install Intel OneAPI Base Toolkit for Windows.
-
Install Intel OneAPI HPC Toolkit for Windows.
-
Open Intel OneAPI command window (in Start menu, 32 or 64 bit as appropriate). Change to directory with Amica code, and compile Amica with the command (/F sets the stack size):
> mpif90 /Qopenmp /Qmkl /F2147483648 /DMKL /fpp /O3 /exe:amica15mkl.exe funmod2.f90 amica15.f90
-
Test:
> .\amica15mkl.exe .\amicadefs.param
-
The files impi.dll and libfabric.dll should be copied to executable folder when running outside OneAPI command window. Search OneAPI mpi directory for locations.
-
These are old instructions. Try using Intel OneAPI modifiying the commands similar to the instructions for Windows above.
-
Install Intel Fortran compiler for Mac/Linux (free demo). See https://software.intel.com/en-us/intel-parallel-studio-xe
-
Compile MPICH2 setting environmental vars CC, CXX, FC, and F77 to icc and ifort. Set $FBIN to Intel Fortran bin directory.
i) Download the mpich-3.2 code from: http://www.mpich.org/static/downloads/3.2/mpich-3.2.tar.gz
ii) Compile mpich-3.2:
$ cp /Users/$USER/downloads/mpich-3.2.tar.gz . $ setenv CC $FBIN/icc $ setenv CXX $FBIN/icc $ setenv F77 $FBIN/ifort $ setenv FC $FBIN/ifort $ tar xvf mpich-3.2.tar.gz $ cd mpich-3.2 $ ./configure --prefix=/Users/$USER/mpich-3.2-install $ make $ make install
-
Compile Amica with the command:
$ ~/mpich-3.2-install/bin/mpif90 -L/Users/$USER/mpich-3.2-install/lib/ -I/Users/$USER/mpich-3.2-install/include/ -qopenmp -mkl -static-intel -O3 -fpp -DMKL amica15.f90 funmod2.f90 -o amica15mac
-
Test:
i) Download Sample EEG Data (Memorize.fdt and amicadefs.param) from: https://sccn.ucsd.edu/~jason/amica_web.html
ii) Test binary:
$ ./amica15mac ./amicadefs.param
-
These are old instructions. Try using Intel OneAPI modifiying the commands similar to the instructions for Windows above.
-
Install Intel Fortran compiler for Linux.
-
Compile MPICH2 setting environmental vars CC, CXX, FC, and F77 to icc and ifort.
-
Compile Amica with the command:
$ /home/jason/mpich2-3.2-install/bin/mpif90 -I/opt/intel/mkl/include/ -fpp -qopenmp -O3 -mkl -static -static-intel -DMKL funmod2.f90 amica15.f90 -o amica15ub
-
Test:
$ ./amica15ub ./amicadefs.param
- load appropriate modules:
module purge
module load cpu/0.15.4 intel intel-mkl mvapich2
- Compile Amica with the command:
mpif90 -static-intel -fpp -O3 -march=core-avx2 -heap-arrays \
-qopenmp -mkl -DMKL -o amica15ex funmod2.f90 amica17.f90
- Test:
$ ./amica17nsg ./amicadefs.param
- Run on compute partition:
<Edit amicadefs.param file line to: maxthreads 4>
$ module load cpu/0.15.4 slurm intel intel-mkl mvapich2
$ export OMP_NUM_THREADS=4 ; export SRUN_CPUS_PER_TASK=4 ; export MV2_ENABLE_AFFINITY=0
$ srun --partition=compute --nodes=<NUM_NODES> --tasks-per-node=32 --cpus-per-task=4 \
--mem=249208M --account=<ACCOUNT> --export=ALL -t 04:00:00 ./amica17nsg ./amicadefs.param
<If job fails, reduce block_size in amicadefs.param. Increase block_size to speed up.>
1.7 - Update documentation for pop_runamica and add test file
1.6.1 - Modify Windows compilation instructions. Intel OneAPI should be tested for Mac and Ubuntu.
1.6 - Deprecate Comet and replace with Expanse supercomputer executable
1.5.2 - Comet supercomputer executable