Поскольку ваш пункт 2 предполагает, что вы можете жить с некоторым снижением производительности, вы можете рассмотреть гибридный подход: SMP в отдельных машинах, обмен сообщениями между машинами. Я не знаком с D, поэтому не могу предложить никаких конкретных советов. Кроме того, я видел смешанные обзоры гибридного подхода для OpenMP + MPI, но он может подойти вам и вашему приложению.
РЕДАКТИРОВАТЬ: Возможно, вы захотите поискать в Google «разделенное глобальное адресное пространство», которое, по-видимому, достаточно точно описывает желаемый подход. Как и раньше, я не советую использовать D для этого.