Ringing in the New Year by seeing out the old

2011 has been a great year for me; Graduated with a 1st MEng in Electronics & Software Engineering @QUB, Got Job offer to a major financial house, which I turned down, Got Job offer to a C|EH company in England, which I turned down, Got DELNI Funded PhD offer (x4) from CSIT/ECIT, which I turned down, Got selected to be one of the two UK projects within a Joint UK/FR Defence PhD Programme, which I accepted, ...

December 31, 2011 · Andrew Bolster

LU Decomposition in C (and under CUDA)

As part of any major project, it occasionally happens that you assume something is a ‘solved problem’ when its really not. In my case it was solving small linear systems, of the form Ax=B, where A is an nxn matrix, B is a n vector. This is a problem that’s been solved in libraries such as LAPACK, LINPACK, BLAS, etc etc. The issue appears when you’re trying to do this stuff within a specific hardware environment (CUDA), and you cannot call host functions from the device, and the cuBLAS libraries cater only to large matrices processed in parallel ...

April 18, 2011 · Andrew Bolster

CUDA Compute 20 Error and other issues

There’s a quirk of using older CUDA drivers is that the latest NVIDIA SDK code examples are not backward compatible, i.e compiling the 3.0 SDK against the 2.3 toolkit (that I’ve spent the last day doing) is a fools errand (Thanks very much to @thebaron on #cuda on freenode and tkerwin on StackOverflow.) Basically, the 3.x drivers reclassify newer cards based on the; previously, the ‘compute’ value (a measure of OpenCL adherence) would max out at 1.3, but now the range is extended up to 2.0, but the 2.3 toolkit does not recognise this value, so craps out. ...

April 14, 2011 · Andrew Bolster

SEE, Programming Abstractions, Assignment 1

SEE, or, Stanford Engineering Everywhere, has turned out to be my favourite E-learning resource; I’ve dipped into it a few times over the past few years but in light of my recent investment into a CUDA enabled Graphics Card, I thought that it was coming high time to brush up on my C++ programming, which I’ve basically left stagnant for two years after advancing no further than function pointers, structures, and templates. So, in the spirit of openness that SEE tries to foster, I’ll be blogging my work through their CS106B course, Programming Abstractions, the second of three programming courses. (I passed on CS106A, Programming Methodology, since I’ve had enough Java shoved down my throat to last a lifetime…). ...

April 28, 2010 · Andrew Bolster

Change Of Plans.....

My attention span isnt really that great with projects, so the thought of doing the entire Project Euler in several different languages was never realistically getting off the ground. (FYI Problems All On One Page ) So, modification and extension to the previous idea; Take one random number generator (java.util.random) and a list of languages I think I should have at least a cursory knowledge of. Each time I finish one problem, push a button and it tells me what language to use for the next one. ...

June 28, 2009 · Andrew Bolster

Another Uni Project

If anyone is interested in Erlang B Calculations, very relevent to any communications or engineering students, I’ve written a little quick piece of code to calculate them. There are several levels of functionality in the code. Erlang B itself only has 2 variables, System load in Erlangs, and the number of “trunks” (read: servers/call center operators/phone lines), and its output is a blocking probability from 0 to 1 All three of these variables or none atall can be defined at runtime; ...

May 13, 2008 · Andrew Bolster

Folding Code

I’ve been folding for a while now, and I’d previously written a really very cobbled together way of parsing my unitinfo.txt files, but, searching for something to do other than revise, I’ve written a similarly cobbled together but much shorter way of parsing my folding progress and telling me (as in speech) how far its going. Required: Espeak, basic bash knowledge to adjust. note: the espeak adjustments are just personal preference, so change them at will. ...

May 12, 2008 · Andrew Bolster

Embedded C GPS Project

Afternoon folks, I’m supposed to be studying but dont have the heart to, so I’m documenting a recent project from Uni. The remit was to be able to parse RS232 data coming in from a GPS unit and reformat it for a LCD display. I dont have the part numbers handy but I was programming on a 18F series PIC that supported C. Most of the ancillary code is more platform dependant, such as working with the PIC interrupts etc, so for the purposes of this code snippit, assumme that a NMEA sentence (I used RMC and some RMB, but never really finished that bit) stored as a character buffer, and a structure, as defined, to store relevent data in. ...

May 12, 2008 · Andrew Bolster

Review: Learning Cython Programming

About 6 months ago now, I had the pleasure of getting Phil Herron to talk at the Farset Labs PyBelfast group about his work in GCC/Cython fron end optimisation work, which was simultaneously waaaaay over my head and really interesting. I’ve been a ‘Python Primary’ software engineer now for about 5 years, in web-dev, infrastructure monitoring, data analysis, and scientific computing, with some esoteric stuff involving small-vector linear algebra optimisation on GPU CUDA, Matlab bridging with Octave / Oct2Py, and distributed state systems. But somehow, I’ve managed to dodge hardcore Cython. ...

Andrew Bolster