The typical way to do this would be to create a standalone executable that accepts command line arguments and can be scripted from a language such as Python.
This wiki page has information on how to build an executable "app" using the Chaste build system:
I am not sure if there are any cardiac pitfalls to my next suggestion (which I use for cell_based applications), but there is an incomplete wiki page here:
which contains a barebones example of a C++ executable using boost::program_options, being driven by a python script using the multiprocessing module to distribute executable runs in parallel. I usually send a sequentially increasing integer as a command line argument, which is used in the directory name to ensure uniqueness, and also as a random seed, if needed.