Talk Lightning talks

Presented by Any One in Scientific track 2010 on 2010/07/11 from 16:00 to 17:30 in room Dussane

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:

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)


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
  • : ~34 FPS
  • : ~400FPS => glumpy code almost identical

Joblib: lightweight pipelining



  • 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

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:

ANSYS (R) Composite PrepPost

Uche Mennel (

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
  • 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:

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