Giter Club home page Giter Club logo

amica's Introduction

Amica

Code for AMICA: Adaptive Mixture ICA with shared component

Refer to the Amica wiki for documentation.

Refer also to Jason Palmer's AMICA page.

TO COMPILE WITH INTEL FORTRAN ON WINDOWS

  1. Install Intel OneAPI Base Toolkit for Windows.

  2. Install Intel OneAPI HPC Toolkit for Windows.

  3. 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
    
  4. Test:

      > .\amica15mkl.exe .\amicadefs.param
    
  5. 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.

TO COMPILE WITH INTEL FORTRAN ON MAC

  1. These are old instructions. Try using Intel OneAPI modifiying the commands similar to the instructions for Windows above.

  2. Install Intel Fortran compiler for Mac/Linux (free demo). See https://software.intel.com/en-us/intel-parallel-studio-xe

  3. 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
    
  4. 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
    
  5. 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
    

TO COMPILE WITH INTEL FORTRAN ON UBUNTU

  1. These are old instructions. Try using Intel OneAPI modifiying the commands similar to the instructions for Windows above.

  2. Install Intel Fortran compiler for Linux.

  3. Compile MPICH2 setting environmental vars CC, CXX, FC, and F77 to icc and ifort.

  4. 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
    
  5. Test:

      $ ./amica15ub ./amicadefs.param
    

TO COMPILE WITH INTEL FORTRAN ON EXPANSE SUPERCOMPUTER

  1. load appropriate modules:
   module purge
   module load cpu/0.15.4 intel intel-mkl mvapich2
  1. Compile Amica with the command:
   mpif90 -static-intel -fpp -O3 -march=core-avx2 -heap-arrays \
       -qopenmp -mkl -DMKL -o amica15ex funmod2.f90 amica17.f90
  1. Test:
   $ ./amica17nsg ./amicadefs.param
  1. 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.>

VERSION HISTORY

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

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.