mpb-split - compute eigenmodes with MPB using multiple processes
mpb-split NUM-SPLIT [DEFINITION]... [CTLFILE]...
mpb-split is a parallelizing front-end to MIT Photonic Bands (MPB).
For a computation with several k points, it splits the list of k points
over multiple processes. Of course, this will only benefit you on a
system where different processes will run on different processors, such
as an SMP or a cluster with automatic process migration (e.g. MOSIX).
mpb-split is actually a trivial shell script, though, so you can easily
modify it if you need to use a special command to launch processes on
MIT Photonic Bands (MPB) is a free program to compute the band
structures (dispersion relations) and electromagnetic modes of periodic
dielectric structures, and is applicable both to photonic crystals
(photonic band-gap materials) and a wide range of other optical
More information on MPB, including a detailed manual, can be found
online at the MPB home page: http://ab-initio.mit.edu/mpb/
A typical invocation of mpb-split looks like:
mpb-split num-split foo.ctl >& foo.out
This causes mpb-split to process the control file foo.ctl, divide the k
points into num-split equal chunks, run each list in a separate process
with MPB, and redirect the output (in order) to foo.out. (One
typically redirects output to a file, as the output is verbose and
contains a number of comma-delimited datasets that one can extract by
Overall, the behavior and arguments are the same as for mpb except that
the first argument must be the integer num-split.
What mpb-split technically does is to set the MPB variable k-split-num
to num-split and k-split-index to the index (starting with 0) of the
chunk for each process. If you want, you can use these variables to
divide the problem in some other way and then reset them to 1 and 0,
Send bug reports to S. G. Johnson, email@example.com.
Written by Steven G. Johnson. Copyright (c) 1999-2012 by the
Massachusetts Institute of Technology.