Slides and demos (in Jupyter Notebook form) for all the courses I currently teach on an ongoing basis at the University of Illinois are now available in open source form on Github: Numerical Analysis (for CS450) Numerical Methods for Partial Differential Equations (for CS555) Fast Algorithms and Integral Equations Languages …
As someone who maintains a fair number of software packages that build, in one way or an other, on OpenCL (and keeps creating more!), a friend recently asked me what I thought of the state of the OpenCL ecosystem in 2018. In part, I am writing this to support the …
Nvidia's Parallel Forall blog recently highlighted two applications that are using my Python HPC packages to accelerate their computational science workloads: Increasing the Luminosity of Beam Dynamics with GPUs , a writeup of Adrian Oeftiger 's work on CERN's PyHEADTAIL code. Open, Reproducible Computational Chemistry with Python and CUDA a writeup …
At SC15 last week I had the opportunity to present a tutorial on how to design, build, and compile your own domain-specific language using Python. I am now releasing the tutorial material under a Creative Commons license for the community to use and build on. Browse tutorial Specifically, the material …
Gaston Hillar has written a very nice introductory article on using PyOpenCL , to be part of a two-part series. I'm already looking forward to the second part. :) If you'd like to try to follow along with the article, check out the OpenCL installation howto , then follow the easy installation instructions …
As someone who, on occasion, has created a domain-specific- language or two , this entry of the Devil's Dictionary of Programming hit close to home: DSL A domain specific language, where code is written in one language and errors are given in another. Link (found on hacker news)
Simon McIntosh-Smith from Bristol University just let me know that he and Tom Deakin have published a new set of lecture slides and excercises (with solutions!) to teach (more generally) OpenCL and (specifically) PyOpenCL. I've added a link to this and a few older tutorials to PyOpenCL's main documentation page …
Quote of the day: In Python 2.6, no one can hear you scream. ( source ) This reminds me of that one time when I was debugging some odd interaction between threading and contexts in PyCUDA. Never again, hopefully. :)
After many long weeks (months, really) spent applying for and searching for the right job, white smoke! (sorry, couldn't resist) I will be joining Luke Olson, Bill Gropp, Mike Heath and everyone else in the Scientific Computing Group at the Computer Science Department of the University of Illinois at Urbana-Champaign …
This October I had the honor of presenting my work on using Python with GPUs at PyData NYC 2012 . --> There was also a panel discussion on Python+Parallel that I was a part of--great fun. --> Also be sure to check out all the videos of the other great talks to …
Like last year, I had the honor of being invited to present PyCUDA and PyOpenCL along with a few examples of their use to a great crowd at Nvidia 's inaugural GPU Technology Conference 2010 . Please click the following link to view the slides: PyCUDA and PyOpenCL at Nvidia GTC …
At the recent PyCon Quattro, which took place in early May in the beautiful Tuscan city of Florence, Fabrizio Milo gave a talk on PyCUDA entitled PyCuda: Come sfruttare la potenza delle schede video nelle applicazioni python (PyCUDA: How to make use of the power of graphics cards in Python …
Quite often, I hear complaints that coding for GPUs is difficult. In response to such comments, I believe that, for correct perspective, the discussion needs to be framed somewhat differently. First of all, squeezing the last drop of performance out of modern CPUs is hard, too. Here's a nice article …
In my opinion, GPU computing is significant because I--as a grad student--can easily afford a machine that allows me to perform a simulation like the following in 40 minutes instead of a whole workday. That's why. If you're curious, this shows the density of a vortex shedding flow behind a …
Do you have a free checking account? A free credit card? Do you perhaps even get money back from your credit card company? Ever wonder who pays for all these freebies? This Frontline report (also embedded below) provides some answers and sheds light on the shady things going on in …
Nicolas Pinto , Yunsup Lee , Bryan Catanzaro , Paul Ivanov , Ahmed Fasih and I have recently submitted an article that explains how PyCUDA allows the user to do run-time code generation ("RTCG"), and how that is an enormous boon to implementation efforts of most high-performance codes. Among many other things, PyCUDA also …
This past week, I had the honor of presenting a talk on PyCUDA at Nvidia 's inaugural GPU Technology Conference . Please click the following link to view the slides: PyCUDA talk at Nvidia's GPU Technology Conference . Update: Nvidia has posted a recording of the session that you may watch or …
Is it possible to take the instrumentals from one track, the vocals from another, and come up with something that you'd actually want to listen to? Turns out yes: Amazing what computers can do these days. (via Holger Levsen ) Original 1 , Original 2 .
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 …
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 …
I'm happy to introduce PuDB , a full-screen, console-based visual debugger for Python that I recently cooked up. [Download it here](http://pypi.python.org/pypi/pudb) Or install it simply by typing easy_install pudb into your Unix shell. Here's a screenshot of it in action: Python has had decent debugging …
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 …
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. World Builder from Bruce Branit on Vimeo . One thing I could especially relate to about this video is the feeling of time-constrained emptiness at …
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: The Crisis of Credit Visualized from Jonathan …
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 uses …
I'm happy to announce the initial public release of CodePy , a native-code Metaprogramming toolkit for Python. The idea is the following: You build a string that is actually C code. CodePy compiles it, links it, and dynamically loads it into the Python interpreter. Ta-da: Instant native-code performance, with no explicit …
Nicolas Pinto at MIT was nice enough to invite me over to give a talk in their CUDA class . I made a bunch of slides that I think are of general interest to people who are interested in PyCuda. You can find them here .
Tim Warburton , Jeff Bridge, my advisor Jan Hesthaven and I have recently submitted an article detailing our efforts to accelerate Discontinuous Galerkin computations by using Nvidia CUDA GPUs. DG seems to be a good fit for these machines. Get it while it's hot: Arxiv , Brown SC reports , JCP Abstract Discontinuous …
I've just rolled release 20080816 of the bindings, with the following stuff changed: Fix asserts in gbsv.hpp as suggested by Vardan. Sync Thomas's remaining fixes. Apply patch to gels* from Naoki at http://mathema.tician.de/node/391. Remove duplication in lapack_names.h. Fix line endings in Jesse's gelsd …
I'm happy to announce the availability of PyCuda 0.91 . There is full, up-to-date documentation available. The following exciting stuff is in PyCuda 0.91: Support for Windows and MacOS X, in addition to Linux. (Gert Wohlgemuth, Cosmin Stejerean, Znah on the Nvidia forums, and David Gadling) Support more arithmetic …
If you're anything like me, you go to Brown University and really like Till Tantau's Beamer LaTeX package for making slides. Unfortunately, Beamer's theming can be a bit obstinate, and figuring out how to give your slides a Brown flavor (yum!) can be tedious. Luckily for you, I just spent …
In this recent paper , Finite Volume guru Randall J. LeVeque addresses an issue that is near and dear to my heart: Computational Scientists must start thinking about the reproducibility of their results. Scientific results obtained by experimentation are expected to be reproducible. This has long been demanded of published results …
I'm happy to announce the availability of PyUblas and its companion package PyUblasExt in version 0.92. While PyUblasExt is available for the first time in released form, these are the changes made to PyUblas: Sparse wrappers are now not compiled by default. You have to request them using --with-sparse-wrappers …
Responding to a patch from Bill Nottingham, I've uploaded TagPy 0.94.1. It fixes building TagPy against TagLib 1.5 and also fixes a mis-wrap of the clear method of the Map type. In case you were wondering, 0.94 was a dud, but by the time I realized …
Yay, here I go again. ( Update: and again) There were a few small wrinkles in Synoptic 0.91 (and 0.91.1) for which I felt it warranted to push out a followup release, aptly called 0.91.2. It fixes the following things: Depend only on Python 2.4 …
I'm happy to announce the first truly public release of Synoptic , my own web-based dynamic note taking application. If you find yourself lost in a jumble of either paper notes, text files on a hierarchical file system, or an overgrown Tomboy wiki, and find yourself craving order, categories, and simplicity …
I've rolled another new Boost bindings snapshot, dated 20080405. This time around, I've done a bit more than update to current svn. I've tried to scavenge past contributions from the Ublas mailing list that got dropped on the floor. I've created a new version control tree where I intend on …
How should scientific codes be constructed? Scientific codes are often experimental in nature, and therefore need to be easy to change, and, of course, quick to develop in the first place--who wants to invest any more than necessary into an idea that might not work out after all? On the …
If you're willing to exchange a bit of memory for a lot less strain on your wrists, let alone work speed, this is your lucky day. In this post, I will describe how I've tuned my everyday work environment to a point where it feels completely unnatural for me to …
I had a good laugh off this list of unintentionally offensive product names . As the title hints, Barf detergent is up there. But there's one name that takes the cake. It hails from Germany, as it had to. To be precise, the electronics firm Trekstor decided to name the black-colored …
If you're choosing between Obama and Hillary, here is a compelling argument brought forward by someone who knows what he is doing . ( transcript ) I couldn't agree more. Go ahead, spread this! :)
Since I've received a number of calls for help with regard to my software packages, in particular MeshPy and PyLinear , I've decided to create a public forum for these requests for help. Here they are: the MeshPy forum and the PyLinear forum . Here's to years of useful discussions! ;)
I've pushed out yet another version of TagPy . This time it is to mop up after some rather unhelpful default in TagLib. That is, unless you have the magic lines: import tagpy.id3v2 as id3v2 id3v2.FrameFactory.instance().setDefaultTextEncoding(tagpy.StringType.UTF8) in your code, the generic API tag.artist …
In order to fix Debian bug #438556 (a crasher that made almost all of the ID3v2 infrastructure useless), I have just release version 0.92 of tagpy. Go get it while it's hot.
Thanks to Debian, I got pidgin 2.2.0 today, and with it, its new atrocious smiley theme--eyebrows and all. This prompted me to make a smiley theme out of Psi 's old smileys, which I still remember liking the most. You can download that theme here: PSI Smilies in …