Compilers ¡and ¡VMs ¡for ¡Programming ¡ Environments ¡Used ¡by ¡Scien;sts ¡ José ¡Nelson ¡Amaral ¡– ¡Univ. ¡of ¡Alberta ¡ (with ¡input ¡from ¡Laurie ¡Hendren ¡and ¡ Rahul ¡Garg ¡– ¡McGill ¡Univ.) ¡
Why ¡Python ¡in ¡Computa;onal ¡ Chemistry? ¡ • Easy ¡integra;on ¡of ¡code ¡wriMen ¡in ¡C/C++; ¡ • Composibility ¡(reuse) ¡ – New ¡students ¡quickly ¡get ¡results ¡ – Build ¡from ¡exis;ng ¡modules, ¡instead ¡of ¡building ¡ from ¡scratch ¡ • Easy ¡to ¡learn ¡the ¡language ¡ • Visualiza;on ¡(very ¡important) ¡ • Drawbacks: ¡ – Performance ¡of ¡Python ¡modules ¡
Comple;ng ¡the ¡Bridge ¡ OpenMP ¡ OpenMP ¡ CPU ¡ Compiler ¡ ¡Code ¡ Nvidia ¡ OpencL ¡ OpenCL ¡ Code ¡ Compiler ¡ Python/NumPy ¡ UnPython ¡ + ¡ Compiler ¡ ¡Annota;ons ¡ Jit4OpenCL ¡ Compiler ¡ AMD ¡ OpenCL ¡ Restricted ¡ Compiler ¡ Jit4GPU ¡ C++ ¡ Compiler ¡ ¡Syntax ¡ AMD ¡CAL ¡ AMD ¡CAL ¡ Code ¡ Compiler ¡
Comple;ng ¡the ¡Bridge ¡ OpenMP ¡ OpenMP ¡ CPU ¡ ? ¡ MatLab ¡ Compiler ¡ ¡Code ¡ Nvidia ¡ OpencL ¡ OpenCL ¡ Code ¡ Compiler ¡ Python/NumPy ¡ UnPython ¡ + ¡ ? ¡ Compiler ¡ ¡Annota;ons ¡ Jit4OpenCL ¡ Compiler ¡ AMD ¡ OpenCL ¡ Restricted ¡ Compiler ¡ Jit4GPU ¡ C++ ¡ Compiler ¡ ¡Syntax ¡ AMD ¡CAL ¡ AMD ¡CAL ¡ Code ¡ Compiler ¡
What ¡we ¡have ¡ OpenMP ¡ OpenMP ¡ CPU ¡ ? ¡ MatLab ¡ Compiler ¡ ¡Code ¡ Nvidia ¡ OpencL ¡ OpenCL ¡ Code ¡ Compiler ¡ Python/NumPy ¡ UnPython ¡ + ¡ ? ¡ Compiler ¡ ¡Annota;ons ¡ Jit4OpenCL ¡ Compiler ¡ AMD ¡ OpenCL ¡ Restricted ¡ Compiler ¡ Jit4GPU ¡ C++ ¡ Compiler ¡ ¡Syntax ¡ AMD ¡CAL ¡ AMD ¡CAL ¡ Code ¡ Compiler ¡
What ¡we ¡want ¡ IR ¡to ¡ ¡ MatLab ¡ ¡ MatLab ¡ mul;core ¡ to ¡IR ¡ IR ¡to ¡ ¡ NVidia ¡ Intermediate ¡ Python/NumPy ¡ Python ¡ ¡ Represen-‑ ¡ + ¡ to ¡IR ¡ ¡Annota;ons ¡ ta;on ¡ IR ¡to ¡ ¡ CELL ¡ IR ¡to ¡ ¡ AMD ¡
Issues ¡with ¡MATLAB ¡ • No ¡formal ¡specifica;on ¡and ¡no ¡official ¡ publicly-‑available ¡implementa;on ¡ – McLab ¡group ¡is ¡crea;ng ¡on ¡a ¡best-‑effort ¡ specifica;on; ¡ • Designed ¡for ¡interpreta;on ¡not ¡for ¡efficient ¡ execu;on; ¡ • Many ¡dynamic ¡features ¡ – But ¡many ¡of ¡those ¡are ¡not ¡needed ¡or ¡are ¡misused; ¡
Goals ¡for ¡Hendren’s ¡group ¡ • Create ¡a ¡modern ¡and ¡open ¡research ¡ framework ¡for ¡MATLAB: ¡ – Focus ¡on ¡dynamic ¡features ¡that ¡are ¡effec;vely ¡ used ¡ – Facilitate ¡crea;on ¡of ¡extensions ¡for ¡domain-‑ specific ¡languages ¡ – Create ¡a ¡suitable ¡IR ¡ ¡
Hendren’s ¡McLab ¡Vision: ¡ “start ¡with ¡the ¡languages ¡ that ¡scien;sts ¡are ¡using” ¡
Challenges ¡ • Type ¡inference ¡ • Dynamic ¡features ¡ • Loose ¡Language ¡specifica;ons ¡ • Diverse, ¡complex, ¡and ¡evolving ¡hardware ¡ plaeorms ¡
Recommend
More recommend