Posts

Making DESMOND easier to run on a cluster

So, some of you probably wanted to try out this DESMOND code from DESRES. It's shipped with the Maestro suite by Schrodinger, which is free for academics and a little annoying to use if you wanna *just* use the binary. This tutorial essentially describes how to run DESMOND without any of the annoying wrappers shipped by Schrodinger. It's making the code possible to run in a sane fashion – similar to how you launch your any other MD codes on the cluster. We'll cover both the CPU DESMOND and the GPU GDESMOND. Required package can be downloaded from https://www.deshawresearch.com/downloads/download_desmond.cgi/ Desmond_Maestro_2016.3.tar Desmond-3.6.1.1.tar.gz The 'Desmond-3.6.1.1.tar.gz' is just the source code and some sample systems - we won't be compiling that just gonna use the sample system to see if the code runs. Install 'Desmond_Maestro_2016.3.tar' following their instructions. Here is an example module file, to accomp...

What was that password again?

A few months ago I bought a new hard-drive. When you encrypt a drive, you need to set a password – but the trick here is to remember the password. Your hard-drive won't send you a "forgot password?" email. So you set that password, enter it, the drive mounts and then you work away happily for weeks without rebooting your machine. Then you reboot... and you need to re-enter that password. You slowly realize that those weeks ago you set a new unique password for that bloody hard-drive that you don't remember for the love of god... What to do? Well one, don't be a complete idiot like me – remember the password. But if you do, here is what to do? [Spoiler alert: I failed to recover the password but it's a pretty interesting ride...] The new Ubuntu 16.04 comes with this handy too called 'bruteforce-luks', here are some scenarios. Note you have to use it as root. "I remember the start/end of the password and I sort of know what's in the midd...

Benchmarking gromacs – 2 quick questions

Image
With gromacs there are all these things you have to do when benchmarking, it's a little bit of a mess. One question that I always wondered about was – well – how long do you have to run to get a reliable performance number, in ns/day? 1e0 MD step is certainly too short but 1e7 steps seems like unnecessarily excessive. Second question was, could one get away with measuring benchmarking speed of just a box of water? Currently people use system like DHPR or APOA1 (protein in water) to asses but those are arbitrary.  A box of water has dramatically simpler topology than a protein but maybe it doesn't matter? One thing that this asses is absolute performance of gromacs: the ns/day below are low but that's because an old workstation is used, without GPU acceleration. The answer are pretty simple: 1e4–1e5 steps are required to 'converge' the performance estimate, for my test system. Also,  a water box of very similar dimensions (and # of particles) but without the p...

Pharma, you're not a good place to go

Just visited an old-favourite blog of mine – the excellent "In the pipeline" by Derek Lowe. By going though the last 5 or so pages, it's clear what's the hiring state in the industry that once was Merck Cuts Chemistry Layoffs at Takeda AstraZeneca Cutting Back Again Layoffs at Medimmune To balance that there was one positive news Merck Expanding on the West Coast The blog posts are for the span between July 2016 and Sept 2016. Now, this is no hard numbers but gives me an "anecdotal nudge" that field/industry is in atrophy. When is the last time you saw any of the computer-science shops with similar headlines? "Google cuts down on software engineers", "Facebook re-organizes and lays-off data scientists",  anybody? It simply doesn't happen, not at this scale. If you're a young student, grad or post grad in life sciences, consider your options carefully. Academia is marred with fierce competition over small resources....

VNC connect from Mac OSX El capitan to Ubuntu Linxu

Edit 2016-11-05 This is actually trivial, here are the steps. On the remote Ubuntu "workstation", run $ vncserver On the home Mac machine, run your favorite SSH tunnel $ ssh -t -L 5901:localhost:5901 workstation Open up the vnc screen in a Mac window $ open vnc://localhost:5901 

Testing modern Symfony apps

Introduction The words "modern" and "PHP framework" would usually be considered oxymorons – and for good reasons. However, here is no point in denying that a large number of things on the internet relies on Symfony or some other PHP framework to run. These things will be gradually phased out or upgraded but for now they can't just remain untested because they're somewhat (out)dated... API testing The more rigorous part is RESTful API testing that relies on sending json to server and getting server back from the server. Let's create a boilerplate class that's going to help us send POST/GET/DELETE requests wrapped around as methods: And now we're going to use that ancestor class to facilitate some real-life testing of user profile reads and updates. To run the tests do the following Frontend functional/flow testing While valuable, the API testing will not cover certain aspects of the application flow. For example you changed ...

Gromacs 5.x on TITAN Cray machine

For compilation instructions checkout https://groups.google.com/d/msg/plumed-users/Tx29XNNRq8o/xeAu7RNaBAAJ For a while we've been preparing to run some simulations on this machine, hosted by Oak Ridge National Lab. Every cluster is a bit different and that's definitely true for TITAN : each box has 16 CPUs (arranged in 2 "numas") and 1 K20 nVidia GPU. There is no usual MPI or Infiniband, there is some other Cray-specific beast. Here is an example submission script for a non-replica exchange simulation: #!/bin/bash module add  gromacs/5.0.2 cd $PBS_O_WORKDIR # important - allow the GPU to be shared between MPI ranks export CRAY_CUDA_MPS=1 mpirun=`which aprun` application=`which mdrun_mpi` options="-v -maxh 0.2 -s tpr/topol0.tpr " gpu_id=000000000000 # only 12, discard last '0000' $mpirun -n 32 -N 16 $application -gpu_id $gpu_id  $options Submit with $ qsub -l walltime=1:00:00 -l nodes=2 submit.sh ...