High-level language, good for rapid prototyping
The first prototype has adequate speed to go beyond simplistic test cases
Tools to inspect, benchmark and profile (BenchmarkTools
, Profile
, @code_llvm
, @code_native
, ...)
Tricks to selectively optimise performance (@threads
, @inbounds
, @views
, @simd
, ...)
Philosophy: First get it to work, then make it fast
Combination of strong type system and just-in-time compilation:
Machine-specific optimisations can be used ... even on inhomogeneous clusters with nodes of different processor generations
Philosophy: Write code once, but reuse it many times