Я пишу подпрограмму на C ++, где мне в конечном итоге придется выполнить очень сложный интеграл, который, как я считаю, будет трудно / неэффективно приближать численно.
Мое желание - порождать дочерний процесс, используя fork()
, и заставить этот процесс запустить ядро Mathematica для оценки интеграла. (Сценарий будет предварительно написан с определениями переменных в качестве аргументов командной строки).
На данный момент, единственное, что я знаю, это сделать, чтобы Mathematica записала окончательное значение интеграла в файл и произвела вращение родительского процесса (ищет файл для записи), а затем прочитала значение файл, как только это будет сделано.
Есть ли более эффективный способ сделать это? Я знаю, что с записью в файл и вращением происходит много времени, пока файл не будет завершен, но я не знаю, как отправлять / получать сигналы с помощью Mathematica. Есть ли способ открыть часть общей памяти между Mathematica и моей программой, чтобы значение можно было записать в память вместо того, чтобы два процесса считывали / записывали файл?
Буду признателен за любые другие идеи, о которых я не задумывался, или за способ ускорить эту технику.