Abstract
The lightning talk session is an open space for people to present short talks on specific subjects. Anybody is welcome to submit a lightning talk on the day of the conference. The available time slot (one hour) will be divided evenly to allocate time for each presentation. Typically, the available time is 5 minutes.
For a discussion on why lightning talks are great, you can refer to the 2003 Perl conference: http://perl.plover.com/lt/osc2003/lightning-talks.html
List of lightning talks presented
- Euroscipy (M. Muller, Python Academy)
- Glumpy (N. Rougier, INRIA Loria)
- Joblib: lightweight pipelining (G. Varoquaux, INRIA Parietal)
- Matplotlib HTML5 backend (J. Millman)
- NPK 2.0:NMR processing kernel (A. Coutouly, NMRTEC)
- On live web notebook (M Paprocki)
- Peewit: An Agnostic Framework for uniform machine learning experiments (Lorenson, TU Darmstadt)
- Sickits.learn (Machine Learning in Python (F. Pedregosa, INRIA Parietal)
- Sphinx - not only for documentation (M Paprocki)
- Uncertainties (E. Le Bigot)
- UPY: error propagation (F. Romtedt)
- Wine-ing about development (M. Cariaso)
- Advanced scientific programming in Python - previous experiences with a summer and a winter school (V. Hanel)
- Advanced scientific programming in Python - the school this year and the future (V. Hanel)
- Analyze your own DNA (M. Cariaso)
- Ansys composites prep/post (U. Mennel)
- Boost.Python - where 3.3? (A Birgham)
- Driving an experiment with Python (P Cladé)
Sample of talks
GLumpy (OpenGL + numpy)
http://http://code.google.com/p/glumpy/
Rapid and fast visualization
- Existing visualization libraries
- matplotlib powerful but slow for real time simulations
- mayavi is fast and powerful but quite "heavy"
- Here comes glumpy...
- Dedicated to numpy 2d arrays (bool, int or float32)
- Minimize CPU load and CPU/GPU memory transfer
- Extensive use of shaders
- Very fast... but not very sophisticated...
Simple example:
>>> import numpy, glumpy
>>> win = glumpy.Window(512,512)
>>> Z = numpy.random.random((32,32))
>>> I = glumpy.Image(Z.astype(numpy.float32))
>>> @window.event
>>> def on_draw():
... I.blit(0,0,win.width,win.height)
>>> win.mainloop(interactive=True)
- Matplotlib integration
- dynamic_image_gtkagg.py : ~34 FPS
- glumpy-matplotlib-2.py : ~400FPS => glumpy code almost identical
Joblib: lightweight pipelining
http://packages.python.org/joblib/
Vision
Pipelines:
- Performance:
- On-demand computing
- Transparent parallelization
- Provenance tracking:
- Reproducibility
- Debugging via intermediate results
- Joblib = make my life easy for these features:
- High Performance
- Easy debugging
- Clean API
- No dependency (embeddable)
Current features
- Caching mechanism:
>>> from joblib import Memory
>>> mem = Memory(cachedir='/tmp/joblib')
>>> square = mem.cache(np.square)
>>> b = square(a)
______________________________________________________________________________
[Memory] Calling square...
square(array([[0, 0, 1],
[1, 1, 1],
[4, 2, 1]]))
_________________________________________________________square - 0.0s, 0.0min
>>> c = square(a)
- Embarrasingly parallel with debugging:
>>> from joblib import Parallel, delayed
>>> Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10))
[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
- +Tracing logging and debugging
- +fast persistence and hashing
scikits.learn : Machine Learning in Python
http://scikit-learn.sourceforge.net/
What is scikits.learn ?
- Machine Learning library in Python.
- Classical, general-purpose efficient algorithms.
- Clean, easy to use API.
- Based on scipy, numpy, matplotlib.
What we already have
- Efficient bindings for LibSVM and LibLinear (Support Vector Machines).
- Lasso / Elasticnet.
- Other algorithms: GMM, HMM, Logistic, etc.
- Extensive documentation and examples.
What is planned
- Support for sparse matrices (scipy.sparse)
- More algorithms (Unsupervised).
- Non-negative Matrix factorization, Sparse coding.
Advanced Scientific Programming in Pyton -- The Summerschool
Teach scientists advanced programming techniques
- Target audience: PhDs and Postdocs
- Capacity: approx 30 People
- Dependency problem solved with custom Debian based USB stick
- Took place twice so far:
- Summer 2009 Berlin
- Winter 2010 in Warsaw
- Schedule:
- Day 0: Dive into Python - Introduction to Python (Optional)
- Day 1: Software Carpentry - Agile techniques - Version control - Unit testing - Debugging - Software patterns
- Day 2: Scientific Tools for Python - Numpy - Scipy - Matplotlib
- Day 3: The Quest for Speed - Parallelization - The starving CPU problem (Pytables and Blosc)
- Day 4: Programming Project and Tournament
- Format of Lectures
- ~1.5 hour lecture followed by ~1.5 hour exercise
- Enforce pair programming
- Programming Project
- Pacman -- 2-player capture the flag
- Takes place on afternoon of day 2 and 3, and all of day 4
- Groups of ~6 people
- Groups program autonomous Pacman agents
- Agents compete against each other
- Tournament at end of last day
- Video: http://www.youtube.com/watch?v=E82IrVhVaVc
ANSYS (R) Composite PrepPost
Uche Mennel (mennel@even-ag.ch)
EVEN - Evolutionary Engineering
- Part of ANSYS Mechanical (12.1 +)
- Material definition functionality
- Laminate definition functionality via oriented element sets
- Draping and Flatwrap
- Comprehensive composite failure analysis
- Runs on multiple platforms: Windows and Linux, 32/64 bit
- Python scripting user interface and recording
Software Design Stack
- Enthought Envisage GUI
- Front end:
- Specification Tree (Single Project plugin)
- Interactive 3D Scene (VTK)
- Embedded Python Shell (With history)
- Back end:
- "Observable python UI (using python-louie)
- Python wrapper (using boost-python)
- C++ Postprocessor library
- Front end:
Future
- Many many features desired by customers
- Use Traits also for the model level
- Better shell plugin (e.g. IPython)
- Allow other users to provide plugins, failure criteria
- Lots of VTK rendering/interaction extensions (exploiting the graphics hardware like textures, shaders, stencil buffer)
- Increase sharing of extensions of WX, VTK
- Deployment for Linux enterprise systems (SuSE, Red Hat, still python 2.4!)
Boost.Python: Where is it?
Austin Bingham
- It seems that boost.python has almost zero presence in the conference. Why?
- Are people interested in learning more about it, e.g. as a tutorial next year?
Driving a physics experiment with Python
Pierre Cladé : Laboratoire Kastler Brossel (UPMC, ENS, CNRS) email: first.last@upmc.fr
Many instruments: Digital and analog input/output, scopes, spectrum analyzers, arbitrary waveform generator, ...
Software for experimental physics:
- Labview (National Instrument) for the data acquisition
- Scilab, Matlab, ... for data analysis
Using Python?
- One drawback: Interfacing with instruments not easy (vendors do not support Python yet but provide dll)
- Some advantages
- Object oriented language:
- Every instrument is an object
- Layer between hardware parameters and user parameters
- Interpreted langage:
- A script can be used for calculating parameters
- Script executed by the main loop.
- Flexibility (modify parameters, add new parameters, comment lines, ...)
- GUI only for display (Matplotlib, ...) and start/stop
- Object oriented language:

