Желательно не только запустить несколько ядер, но и организовать абстрагированные от реализации каналы обмена двоичными данными.
Тогда можно реализовать несколько режимов:
- с разными процессами и каналами на основе memory mapped files (легко реализовать, но не очень эффективно)
- с несколькими ядрами в разных потоках одного процесса и каналами в untagged куче (сложно, эффективно)
- с несколькими процессами и каналами на основе IP (можно организовывать кластера)
а также их комбинации...