MJ Rutter's Computing Page
This page contains computing-related stuff produced by me. Those searching for evidence that I have a life outside of computing need to look elsewhere, and there is also a more formal profile and an academic page. I may enjoy a schizophrenic existance as mjr and mjr19, but my email address is always the latter. The correct University (not Departmental) domain is not hard to guess, or simply use this site's domain (less the www).
Numerics
Notes on the integration of 1D functions with sharp peaks (PDF) (Feb 2014).
Notes, benchmarks and sources for Linpack in Fortran, C, python and Java (Jan 2016).
Notes on the linear congruential random number generator, with particular reference to stepping the generator in log2N time, and thus getting results independent of the number of threads after parallelisation with OpenMP. Fortran and C examples included.
Castep
A separate page now exists for my notes on CASTEP.
c2x
I am the author and maintainer of c2x, a pre- and post-processor for Abinit, Castep, QE, Siesta, VASP and other DFT codes, offering a range of format conversions, unit cell transformations, and analysis of densities, structures and bands.
Programs
Those programs which I have written and distribute fairly freely, which include bmp2eps, psimages and eps2gif, are all found on MJR's Software Page.
Notes on IT topics
- fseek can imply fread: why glibc's
fseek()
can be slow - Python and Numba: when python and numba give different results
- Maths and Physics fun with a Raspberry Pi (mostly with python)
- Using a cheap IP camera in a Seminar Room
- LP64 vs LLP64 in C, how long is a long, and why it matters
- right shifts in C, the three types of right shift
- Using ptrace to kill a process but keeping the exit code zero
- Optimising vector operations on the complex type in Fortran
- Fortran matmul vs BLAS dgemm
- Examples of sorts in Fortran
- Simple Gantt charts in LaTeX
- Bézier curves
- HP JetDirect cards
- glmark2 scores for various Radeons used in TCM
- DVI, HDMI and DisplayPort standards.
- Intel's variable clock speeds and the impact on benchmarking
- Intel's maths kernel library
- OpenBLAS and CPU selection
- Intel's compiler and CPU selection
- Notes on gfortran (array bounds checking, module and run-time library versioning)
- PIC and PIE linking issues.
- Linux and huge pages
- 64 bit inodes and issues with 32 bit code
- wrapping shared library calls from Linux
- Accelerating
apt-get
withLD_PRELOAD
- Building the alpine mail client on MacOS
- Finding MacOS version from sshd version
- Migrating between IMAP servers
- Some technical aspects of good web design
- RPM vs DPKG, some notes mostly for my benefit
MPhil/CDT Lectures and other Graduate Seminars
I have lectured on both MPI and Computer Architecture for the Centre for Scientific Computing at the Cavendish. They have some on-line course material.
One-off graduate seminars are generally more fun. TCM users can find them on the relevant bit of TCM's computing pages, but a few are also available on the above courses page.
And an undergraduate course on Fortran 90 is also found on the above page.
C and Fortran
My infamous C vs Fortran document. Yes, I should probably update it to cover C99, F2003, etc.
But instead, I also offer PDF vs PostScript.
An Introduction to UNIX
Everyone has to write one once. So this is mine.