The SciPy'09 conference ended less than a week ago. At the invitation of the SciPy'09 organizers (especially Fernando Perez), Nicolas Pinto gave a talk in the Advanced Tutorials track on how to use PyCUDA to do GPU scripting.
First, I would like to use this opportunity to publicly thank Nicolas for all the work and time he put into making this tutorial a reality. Second, I would like to point out the video of his session, which you can watch below:
As a math person, you're often faced with the task of communicating about math. Unfortunately, most modern means of communication, be it email, the web or instant messages, aren't really suited to typing math. Fortunately, however, many of these means do allow the use of Unicode, and Unicode allows for certain limited forms of mathematical typography.
Putting Unicode formulas together usually requires a fair amount of patience and some quality time with your favorite character map application. But now there's an easier way: The Unicode Input Helper--or "UIH". Here's an image of it in action:
Using it, you may use HTML entity names with backslashes (such as
\int for an integral) to put together the basics of a formula, and then use a searchable list of all known Unicode characters to add the finishing touches. The screenshot gives you an idea. Once you've finished your masterpiece, simply use your computer's copy-and-paste function to get it to where it needs to be.
As a side benefit, I think
uih makes for a nice replacement for pretty much every character map program--but its original purpose was easy typing of math.
I'm happy to introduce PuDB, a full-screen, console-based visual debugger for Python that I recently cooked up.
Or install it simply by typing
into your Unix shell. Here's a screenshot of it in action:
Python has had decent debugging support for a while now, in the form of
But I felt that there was a gap between these offerings--Pdb being very austere, and Winpdb and the IDEs being rather heavyweight. I wanted a comfortable debugger that's easily usable in a shell and doesn't require me to touch my mouse. PuDB uses Ian Ward's excellent Urwid library for its interaction with the console.
Update: Looks like PuDB is slowly growing a community. There's now a mailing list to host discussions.
Here's a waste of time I could just not resist: MIT's Project SIMILE has released a rather nice Timeline Web Widget. Combine that with GitPython and a bit of glue code in Python, and you get a neat, one-page summary of the software work I've done as part of working towards my PhD. Here's a screenshot if you're too lazy to click through:
Note that (nearly) every commit is hyperlinked to the git web frontend, where you can view what was actually changed--just click the title text in the popup bubble.
If you'd like to do this yourself, the code is available, you can get it with
git clone http://git.tiker.net/trees/commit-timeline.git
Happy 109-day to me!
date -d'NNNN-NN-NN + 1000000000 seconds' Mo 13. Apr 01:46:40 EDT 2009
From the department of "what's Andreas wacthing on Vimeo": Here's something amazing you can apparently do with one day of filming and two years of post-production.
One thing I could especially relate to about this video is the feeling of time-constrained emptiness at the beginning... If you've tinkered with creating video games, you probably know what I'm talking about. Research is somehow not too different.
If you haven't been living under a rock, you've probably heard about the global economic meltdown. You'll probably have also listened to people explain it, maybe even understood what's going on. Regardless, this video I recently found sums it up again very nicely:
I’m happy to announce the initial public release of boostmpi, an MPI wrapper for Python.
boostmpi is a high-quality Python wrapper around the Message Passing Interface (MPI). MPI is a standardized interface to libraries such as OpenMPI and MPICH that provide high-performance inter-process communication for distributed-memory computing.
boostmpi was originally distributed as part of the Boost C++ library. This separate distribution aims to make the software more accessible.
Disclaimer: boostmpi (born as Boost.MPI.Python) is the work of Doug Gregor. I just do maintenance and distribution work around here.
The idea is the following:
Ta-da: Instant native-code performance, with no explicit pre-compilation step. CodePy can also help you with the generation of the code, by letting you build a data structure and turning that into C code. CodePy works well with Boost.Python and PyCuda. In conjunction with the latter, it offers an easy way of doing GPU Metaprogramming, a very effective tuning technique for the GPU.