MPB(1)
π MPB β the mpb-split page, bestie edition π
okay so this is the manual for mpb-split, part of the MIT Photonic-Bands Package (MPB, yes, that one, the icon). sit down, grab a boba, we're doing parallel eigenmode computation and it's gonna be adorable. π§β¨
β¨ NAME β¨
mpb-split β compute eigenmodes with MPB using multiple processes π¦
πΈ SYNOPSIS πΈ
mpb-split NUM-SPLIT [DEFINITION]... [CTLFILE]...
π DESCRIPTION π
so mpb-split is a parallelizing front-end to MIT Photonic Bands (MPB). if your computation has several k points, it literally just splits that list of k points across multiple processes. that's it, that's the whole vibe. β¨
now, the important part, bestie: this only benefits you on a system where different processes actually run on different processors. think an SMP, or a cluster with automatic process migration (e.g. MOSIX). otherwise you're just out here launching processes for the plot. π
and here's the tea: mpb-split is actually a trivial shell script. like, genuinely trivial. which is lowkey a slay, because it means you can easily modify it if you need to use a special command to launch processes on other processors/machines. go off, customize. π«Ά
so what even is MPB? MIT Photonic Bands (MPB) is a free program to compute the band structures (dispersion relations) and electromagnetic modes of periodic dielectric structures. it's applicable both to photonic crystals (photonic band-gap materials) and a wide range of other optical problems. versatile queen. π
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 grepping. (iykyk π)
overall, the behavior and arguments are the same as for mpb except that the first argument must be the integer num-split. no cap.
what mpb-split technically does is 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. and if you want, you can use these variables to divide the problem in some other way and then reset them to 1 and 0, respectively. main character energy fr fr. π
π BUGS π
send bug reports to S. G. Johnson, stevenj@alum.mit.edu. he's listening, bestie. π
π AUTHORS π
Written by Steven G. Johnson.
Copyright (c) 1999-2012 by the Massachusetts Institute of Technology.
π SEE ALSO π
mpb(1)mpb-data(1)
okay that's the whole page, you ate that. this was the MPB manual page, and it's dated March 13, 2002 β vintage, iconic, still serving. πβ¨ππ¦
π¦ where this page comes from
- debian bookworm: mpb 1.11.1-5 Β· GPL-2.0-or-later
- debian trixie: mpb 1.11.1-6+b2 Β· GPL-2.0-or-later
- ubuntu jammy: mpb 1.11.1-4 Β· GPL-2.0-or-later
- ubuntu noble: mpb 1.11.1-5ubuntu1 Β· GPL-2.0-or-later
- ubuntu questing: mpb 1.11.1-6build5
- ubuntu resolute: mpb 1.12.0-1 Β· GPL-2.0-or-later
- ubuntu stonking: mpb 1.12.0-1build1 Β· GPL-2.0-or-later
- Copyright (C) 1999-2014 Massachusetts Institute of Technology
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms