Live Programming in Scientific Simulation

Ben Swift, Andrew Sorensen, Henry Gardner, Peter Davis, Viktor K. Decyk


We demonstrate that a live-programming environment can be used to harness and add run-time interactivity to scientific simulation codes. Through a set of examples using a Particle-In-Cell (PIC) simulation framework we show how the real-time, human-in-the-loop interactivity of live programming can be incorporated into a traditional, “offline”, development workflow. We discuss how live programming tools and techniques can be productively integrated into the existing HPC landscape to increase productivity and enhance exploration and discovery.

Full Text:



Jeff Bezanson, Stefan Karpinski, Viral B Shah, and Alan Edelman. Julia: A fast dynamic language for technical computing. arXiv preprint arXiv:1209.5145, 2012.

C. K. Birdsall and A. B. Langdon. Plasma Physics via Computer Simulation. CRC Press, October 2004.

V. Decyk. Skeleton particle-in-cell codes on emerging computer architectures. Computing in Science Engineering, PP(99):1–1, 2015.

Viktor K. Decyk and Tajendra V. Singh. Particle-in-cell algorithms for emerging computer architectures. Computer Physics Communications, 185(3):708–719, March 2014.

P.E. Dewdney, P.J. Hall, R.T. Schilizzi, and T.J.L.W. Lazio. The square kilometre array. Proceedings of the IEEE, 97(8):1482–1496, Aug 2009.

Y. Gil, E. Deelman, M. Ellisman, T. Fahringer, G. Fox, D. Gannon, C. Goble, M. Livny, L. Moreau, and J. Myers. Examining the challenges of scientific workflows. Computer, 40(12):24–32, December 2007.

James Goodwill and Wesley Matlock. The swift programming language. In Beginning Swift Games Development for iOS, pages 219–244. Springer, 2015.

John Hules and Jon Bashor. Report of the 3rd DOE Workshop on HPC Best Practices: Software Lifecycles. US Department of Energy, 2009.

C Lattner and V Adve. LLVM: A compilation framework for lifelong program analysis & transformation. In International Symposium on Code Generation and Optimization, 2004. CGO 2004., pages 75–86. IEEE, January 2004.

Paulett C Liewer and Viktor K Decyk. A general concurrent algorithm for plasma particle- in-cell simulation codes. Journal of Computational Physics, 85(2):302–322, December 1989.

Marta Mattoso, Jonas Dias, Kary A. C. S. Ocana, Eduardo Ogasawara, Flavio Costa, Felipe Horta, Vitor Silva, and Daniel de Oliveira. Dynamic steering of HPC scientific workflows: A survey. Future Generation Computer Systems, 2014.

Floreal Morandat, Brandon Hill, Leo Osvald, and Jan Vitek. Evaluating the design of the R language. ECOOP 2012–Object-Oriented Programming, pages 104–131, 2012.

Jurriaan D Mulder, Jarke J van Wijk, and Robert van Liere. A survey of computational steering environments. Future Generation Computer Systems, 15(1):119–129, February 1999.

Travis E. Oliphant. A Guide to NumPy, volume 1. Trelgol Publishing USA, 2006.

The Rust Programming Language.

Andrew Sorensen. Extempore.

The Computer Languages Benchmark Game.

Publishing Center of South Ural State University (454080, Lenin prospekt, 76, Chelyabinsk, Russia)