On 23-12-08 00:10, Edgar Lux wrote:
Hello, I found [1][2] that it is possible to change the compiler for C and C++ source blocks. I would like to know if there is a way to add =mpirun -np 2= (where 2 can be any other number) to run the resulting executable. Thanks! [1] https://orgmode.org/worg//org-contrib/babel/languages/ob-doc-C.html [2] https://github.com/gheber/literate-hdf5

I guess you want to run the executable after it has been compiled, with a command like this one:

mpirun -np 2 /tmp/babel-ad2pdk/C-bin-JTvjS4

Currently it is not possible.


There is the :cmdline specifier which adds parameters to the executable, like this:

#+begin_src C++ :cmdline AAA BBB CCC
int main (int nargs, char** argv)
{
   // argv will be {
   //   "/tmp/babel-ad2pdk/C-bin-JTvjS4",
   //   "AAA",
   //   "BBB",
   //   "CCC"
   // }
}
#+end_src

Those parameters come AFTER the executable, whereas mpirun should come BEFORE the executable.

An extension may be written in ob-C.el, in the org-babel-C-execute function.
The relevant line is:
  (concat tmp-bin-file cmdline)

If you want to contribute...