This is for the common knowledge base everyone should know, detailed requirements are listed below. Note that for actual competition environment, we should use Linux as the hosting OS(no exceptions).
OS: LINUX(CentOS prefered,Ubuntu)
Parallel environment:
-
MPI (essential, MPICH)
-
OpenMP(build with POSIX Thread)
-
POSIX Thread
-
CUDA
-
OpenCL
Language:
-
C/C++
-
Fortran
-
Python
-
Shell (bash or zsh, tcsh if you're a old man...)
Compiler:
- GNU GCC
- LLVM Clang
- Intel Fortran Compiler
Debugger:
-
GNU GDB
-
IDB(if you are rich)
-
TotalView
Math Library:
-
MKL(Math Kernel Library)
-
FFTW(fast Fourier transform in the west)
Tools:
- Intel Parallel Studio
- DNU/gprof
- Intel VTune
- Spack (environment manager)
Teamwork:
- Git & Github workflow
- Slack (Technical Problems and Disscussion)
- QQ (水群)
Computer architecture:
- CPU
- GPU
- MIC
Network:
- InfiniBand