01_processor_core/01_polynominal

Hands-on: Polynomials with many floating-point operations

C/C++

How to compile and how to execute

1. Run a script of creating working space

$ cd cpp $ vi task.sh $ bash create_project.sh $ ls Obj_clang Obj_clang.512.swp Obj_clang.inlv2 Obj_clang.novec

2. Run program

## To run as a batch job $ cd Obj_clang/results $ pjsub task.sh ## Or, to run in an interactive job $ cd Obj_clang/results $ bash task.sh

Exercises A

Exercises B (advanced)

Note

Makefile.clang #Clang mode. Auto-vectorization with scalable vector length is allowed. Makefile.clang.512 #Clang mode. Auto-vectorization with 512-bit vector length is allowed. Makefile.clang.512.swp #Clang mode. Auto-vectorization with 512-bit vector length and software pipelining are allowed. Makefile.clang.inlv2 #Clang mode. Auto-vectorization with scalable vector length and interleaving with count=2 are allowed. Makefile.clang.novec #Clang mode, without vectorization. Makefile.trad #Trad mode. Auto-vectorization (w/ 512-bit vector length) is allowed, but software pipelining is not allowed. Makefile.trad.nosimd #Trad mode, without vectorization. Makefile.trad.swp #Trad mode. Auto-vectorization (w/ 512-bit vector length) and software pipelining are allowed.

Fortran

How to compile and how to execute

1. Run a script of creating working space

$ cd fortran $ vi task.sh $ bash create_project.sh $ ls Obj_nosimd Obj_simd Obj_swp

2. Run program

## To run as a batch job $ cd Obj_simd/results $ pjsub task.sh ## Or, to run in an interactive job $ cd Obj_simd/results $ bash task.sh

Exercises A

Exercises B (advanced)

Note

Makefile.nosimd #Auto-vectorization is not allowed. Makefile.simd #Auto-vectorization is allowed. Makefile.swp #Auto-vectorization and software pipelining are allowed.