IPC между C ++ и Mathematica? - PullRequest
       19

IPC между C ++ и Mathematica?

3 голосов
/ 02 декабря 2011

Я пишу подпрограмму на C ++, где мне в конечном итоге придется выполнить очень сложный интеграл, который, как я считаю, будет трудно / неэффективно приближать численно.

Мое желание - порождать дочерний процесс, используя fork(), и заставить этот процесс запустить ядро ​​Mathematica для оценки интеграла. (Сценарий будет предварительно написан с определениями переменных в качестве аргументов командной строки).

На данный момент, единственное, что я знаю, это сделать, чтобы Mathematica записала окончательное значение интеграла в файл и произвела вращение родительского процесса (ищет файл для записи), а затем прочитала значение файл, как только это будет сделано.

Есть ли более эффективный способ сделать это? Я знаю, что с записью в файл и вращением происходит много времени, пока файл не будет завершен, но я не знаю, как отправлять / получать сигналы с помощью Mathematica. Есть ли способ открыть часть общей памяти между Mathematica и моей программой, чтобы значение можно было записать в память вместо того, чтобы два процесса считывали / записывали файл?

Буду признателен за любые другие идеи, о которых я не задумывался, или за способ ускорить эту технику.

1 Ответ

3 голосов
/ 02 декабря 2011

Вы можете использовать MathLink для общения с копией mathematica.Или вы можете встроить библиотеки mathematica в ваше приложение для выполнения вычислений.

Опции охватываются здесь , с конкретными ссылками на mathlink здесь

...