Abstract
This survey paper describes the Network Computing Laboratory (NCLab), a novel public cloud computing platform for mathematics, programming, scientific computing and computer simulations. Through a web-browser interface, it provides users with free access to interactive graphical modules that include symbolic and numerical methods, programming in several languages, computing with Python scientific libraries, computing with GNU Octave, GPU computing with CUDA, computational geometry, 3D CAD design, computational graph theory, finite element programming with the Hermes library, and interactive graphical finite element modules. Users can upload files and data from their local computers, clone projects from the database, share files, form teams, and collaborate on projects. This paper briefly describes how NCLab operates, and it provides concise descriptions of NCLab computational modules with examples of use.
Similar content being viewed by others
References
Cloud computing: Wikipedia page http://en.wikipedia.org/wiki/Cloud_computing. Retrieved on September 15, 2012
Mongo Database: http://www.mongodb.org/. Retrieved on September 15, 2012
Linode: http://www.linode.com/. Retrieved on September 15, 2012
Solin P et al (2012) Introduction to Python programming. In: Open source textbook. http://femhub.com/textbook-python. Retrieved on September 15, 2012
Scipy official website: http://www.scipy.org/. Retrieved on September 15, 2012
Numpy official website: http://numpy.scipy.org/. Retrieved on September 15, 2012
Pylab official website: http://www.scipy.org/PyLab. Retrieved on September 15, 2012
Matplotlib official website: http://matplotlib.org/. Retrieved on September 15, 2012
Sympy official website: http://www.sympy.org/. Retrieved on September 15, 2012
GNU Octave http://www.gnu.org/software/octave/. Retrieved on September 15, 2012
PyCUDA documentation page: http://documen.tician.de/pycuda/. Retrieved on September 15, 2012
NetworkX official website: http://networkx.lanl.gov/. Retrieved on September 15, 2012
Hagberg AA, Schult DA, Swart PJ (2008) Exploring network structure, dynamics, and function using NetworkX. In: Proceedings of the 7th Python in Science Conference (SciPy 2008), pp 1115. Pasadena, CA, USA, Aug 2008
PLaSM: Wikipedia page http://en.wikipedia.org/wiki/PLaSM. Retrieved on September 15, 2012
Paoluzzi A (2003) Geometric programming for computer aided design. Wiley, New York. ISBN 0471899429
Solin P et al (2012) Solid modeling with PLaSM. In: Open source textbook. http://femhub.com/textbook-cad. Retrieved on September 15, 2012
Hermes: Higher-order modular finite element system. http://hpfem.org/hermes. Retrieved on September 15, 2012
Solin P, Segeth K, Dolezel I (2003) Higher-Order Finite Element Methods, Chapman & Hall/CRC Press, New York
Shewchuk JR (1996) Triangle: Engineering a 2D quality mesh generator and Delaunay Triangulator. In: Lin MC, Manocha D (eds) Applied computational geometry: towards geometric engineering. Lecture notes in computer science, vol 1148, pp 203–222. Springer, Berlin
Python programming language official website: http://www.python.org/. Retrieved on September 15, 2012
Author information
Authors and Affiliations
Corresponding author
Sample Hermes program: linear elasticity
Sample Hermes program: linear elasticity
The following program uses the Hermes library via its Python wrappers in NCLab to define weak forms for the Lamé equations of linear elasticity and solve a sample problem. The XML code representing the finite element mesh is left out. The file is part of the tutorial example A-linear/08-system in the repository hpfem/hermes-tutorial on GithubFootnote 1. All other steps of the algorithm are explained via comments in the code below:
The output of the script is shown in Fig. 15.
Rights and permissions
About this article
Cite this article
Schnepp, S.M. NCLab: Public Computing Laboratory. Computing 95 (Suppl 1), 675–694 (2013). https://doi.org/10.1007/s00607-012-0255-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-012-0255-3
Keywords
- Scientific computing
- Network computing
- Cloud computing
- GPU computing
- Numerical methods
- Python
- Scipy
- Octave
- CUDA
- Finite element method