Open Research Computing in Python
A one-day workshop on held at the Mathematical Sciences Research Institute (MSRI) in on June 25, 2010 in Berkeley, CA.
- 09:00-09:10 Welcome Jarrod Millman and William Stein
- 09:10-10:10 What to demand from a Scientific Computing Language – Even if you don’t care about computing or languages - Peter Norvig (Google)
- 10:10-11:00 Cython: the best of both worlds - Robert Bradshaw (Google)
- 11:00-11:50 Python: an ecosystem for scientific computing - Fernando Perez (UC Berkeley)
- 12:00-14:00 LUNCH
- 14:00-14:50 Python in science and engineering education in India - Prabhu Ramachandran (IIT Bombay)
- 14:50-15:40 Sage: creating a viable open source alternative to Magma, Maple, Mathematica, and Matlab - William Stein (University of Washington)
- 15:40-16:10 BREAK
- 16:10-17:00 The foundation for mathematical and scientific computing - Jarrod Millman (UC Berkeley)
- 17:00-18:00 DISCUSSION
The workshop will be held in Simon’s auditorium at MSRI:
Simon's auditorium Mathematical Science Research Institute 17 Gauss Way Berkeley, CA 94720
Cython: the best of both worlds
Cython is an extension to the Python language that allows explicit type declarations and is compiled directly to C. This addresses Python’s large overhead for numerical loops and the difficulty of efficiently making use of existing C and Fortran code, which Cython code can interact with natively. The Cython language combines the speed of C with the power and simplicity of the Python language.
Python: an ecosystem for scientific computing
As the relationship between research and computing evolves, new tools are required that can not only treat numerical problems, but also allow us to solve a variety of problems involving large datasets in many formats, new algorithms and computational systems like databases or internet servers.
I will discuss how Python provides a balance of clarity and flexibility, without sacrificing avenues for performance, to develop better computational research tools.
Python in science and engineering education in India
The National Mission on Education through ICT (NMEICT) is a one billion dollar initiative launched by the Ministry of Human Resources Development (MHRD), Government of India. It’s goal is to improve the quality of tertiary education in India. One component of the mission involves the spread of open source tools in collegiate education.
In May 2009, IIT Bombay proposed a project on Free Open source Software for Science and Engineering Education (FOSSEE) as part of this mission. The project is to run for three years. One of the thrust areas of FOSSEE is the propagation of the use of Python in science and engineering curricula. To this end, we have been conducting numerous workshops on Python for scientific computing, generating documentation, hosting conferences etc. The workshops are targeted at faculties of colleges, research scholars and students. In this talk, we discuss what we have achieved until now and highlight our future plans for the project. We also attempt to highlight what this will do for the Python community at large.
Sage: creating a viable open source alternative to Magma, Maple, Mathematica, and Matlab
Sage is an open source mathematical software project that I started in 2005, which has had over 200 contributors, about 50 active developers, and receives funding from NSF, Google, Microsoft, and other organizations. The goal of the Sage project is to create a viable free open source alternative to Magma, Maple, Mathematica and MATLAB. I will describe why I started the Sage project, then give a status report about what Sage currently is. This paper is closely related to my talk.
The foundation for mathematical and scientific computing
William Stein, Fernando Perez, and I are founding a non-profit foundation for mathematical and scientific research computing. Our purpose is to ensure unrestricted access to the best computational tools for research and education in mathematics, science, and engineering. Our aim is to do this primarily by fostering existing efforts and communities. The foundation will initially focus on Python, rather than other languages for scientific computing such as R or Scilab. Despite this initial focus on Python, the foundation’s mission will not be merely to promote the use of Python in science.
As research grows increasingly dependent on computing, it becomes critical for our computational resources to be developed with the same rigor, open review and access as the results they support. For this reason, we will actively promote:
- sharing of scientific software, data and knowledge necessary for reproducible research
- unrestricted access to research outcomes and educational tools
- open source software developed by collaborative, meritocratic communities
- academic recognition of computational developments on equal footing to the publication of results
- openly tested, validated and documented software as the basis for reliable scientific outcomes
- high standards of computational literacy in the education of mathematicians, scientists and engineers