%0 Generic %A Brandt, Steven %D 2015 %T A Programming Framework for Physics %U https://figshare.com/articles/dataset/A_Programming_Framework_for_Physics/1570986 %R 10.6084/m9.figshare.1570986.v1 %2 https://ndownloader.figshare.com/files/2354107 %K gpu %K accelerators %K computer science %K Computer Software %X

The fundamental difficulty with scientific software is that the existing languages are either
too general-purpose and too low-level, or both. Thus, physics equations are entangled with the
way they are implemented, even to low level details such as grid structure, cache optimization,
etc. Because everything is coupled, it is difficult for the various scientific communities to adapt to
algorithm or hardware advances. More importantly, it means that researchers cannot specialize
as easily. Everyone must understand physics, software engineering, and computer science to a
to a very deep level, and the learning process, especially for students, is much more arduous
than it needs to be.
In principle, it should be possible to independently specify (1) the scientific equations to be
solved; (2) the type of grids; (3) the type of numerical methods, e.g. time integrators, elliptic
solvers; (4) the intended execution platform (desktop, accelerated cluster, etc.); (5) performance
goals, e.g. as fast as possible, minimum cost, etc.

 

%I figshare