Сделал важный для себя эксперимент.

С помощью oo2c на Ubuntu получилH20, получил последние привязки к библиотеке для распределенных вычисленийmpich.so, подправил их немного, написал наLinux-версии Блэкбоксапростуюпрограмму.

И, о чудо, все заработало. Проверил каквариантзапускас помощью ELF библиотеки(описание) так ис помощью загрузчика.

## Код:
```
dia@hp:~/oberon/bb-freenix/MPI$ mpiexec.mpich2 -n 5 ./blackboxc
Hello world from process 0 of 5
Hello world from process 1 of 5
Hello world from process 2 of 5
Hello world from process 3 of 5
Hello world from process 4 of 5
```


Вот исходный код.
## Код:
```
MODULE Init;

   IMPORT SYSTEM, Kernel, Log, LinLog, Mpi := MpiMpi;

   VAR
      res, rank, size: INTEGER;

   PROCEDURE Init;
   BEGIN
      LinLog.Open;
      res := Mpi.MPI_Init(SYSTEM.ADR(Kernel.bootInfo.argc), SYSTEM.ADR(Kernel.bootInfo.argv));
      IF res = Mpi.MPI_SUCCESS THEN
         res := Mpi.MPI_Comm_size(Mpi.MPI_COMM_WORLD, SYSTEM.ADR(size));
         res := Mpi.MPI_Comm_rank(Mpi.MPI_COMM_WORLD, SYSTEM.ADR(rank));
         Log.String("Hello world from process");
         Log.Int(rank); Log.String(" of"); Log.Int(size); Log.Ln;
      END;
      res := Mpi.MPI_Finalize();
   END Init;
BEGIN
   Init;
   Kernel.Quit(0)
END Init.
```


Это позволяет запускать программы ББ на кластерах с неприличным числом узлов и ядер, особо не парясь организацией своего механизма сообщений. Библиотека mpich используется на 9 из Top 10 суперкомпьютерах.