Skip to content

charlie5/dynamic_distributed_computing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dynamic Distributed Computing

Provides a simple demonstration of 'Direct Distributed Computing' (DDC) in Ada using the 'Distributed Systems Annex' (DSA).

Requirements

  • Provide an application which performs a complex calculation.
  • The calculation should be split into multiple jobs.
  • Jobs should be distributed to worker partitions running on separate network nodes.
  • Workers may join/leave the worker pool at any time during the calculation.

Versions

  • Development (fused) ~ Builds a single executable which may be developed/debugged/tested as with any normal Ada program.

  • Release (dsa) ~ Builds a distributed system providing a Boss partition and a Worker partition.

Folder Layout

  • ./applet: Contains a folder each for the 'fused' (development) and 'dsa' (release) versions.

  • ./library: Contains gnat project files for the common code in the 'source' folder.

  • ./source: Contains source files common to both the fused and dsa versions.

Build

Polyorb is required.

Fused:
  • $ cd ./applet/fused
  • $ gnatmake -P ddc_fused
DSA:
  • $ cd ./applet/dsa
  • $ ./builder

Test

LAN

Open a new terminal

  • $ cd ./applet/dsa/test/po_cos_naming
  • $ po_cos_naming

Open a new terminal

  • $ cd ./applet/dsa/test/boss
  • $ ../../bin/boss_partition

Open a new terminal

  • $ cd ./applet/dsa/test/worker1
  • $ ../../bin/worker_partition

Open a new terminal

  • $ cd ./applet/dsa/test/worker2
  • $ ../../bin/worker_partition
WAN:
General:

Open /etc/hosts and ensure it contains a line with your WAN (WWW) net address, matched with your hostname (as defined in /etc/hostname).

Running a Boss:

Open a new terminal:

  • $ cd ./applet/dsa/test/po_cos_naming

  • Make sure that the 'polyorb.protocols.iiop.default_port' value is open in any firewall and forwarded to the box running the po_cos_naming server.

  • $ po_cos_naming

Open a new terminal:

  • $ cd ./applet/dsa/test/boss

  • Edit polyorb.conf and set the name service to the value given by 'po_cos_naming' server output, similar to the following:

  • name_service=corbaloc:iiop:1.2@192.168.1.4:5001/NameService/000000024fF0000000080000000

  • Make sure that the 'polyorb.protocols.iiop.default_port' value is open in any firewall and forwarded to the box running the server.

  • Finally, launch the boss ...

  • $ ../../bin/boss_partition

Running a Worker:

Open a new terminal:

  • $ cd ./applet/dsa/test/worker3

  • Edit 'polyorb.conf' and set the name service to the value given by 'po_cos_naming' server output, similar to te following:

  • name_service=corbaloc:iiop:1.2@192.168.1.4:5001/NameService/000000024fF0000000080000000

  • Make sure that the 'polyorb.protocols.iiop.default_port' value is open in any firewall and forwarded to the box running the worker.

  • Finally, launch the worker ...

  • $ ../../bin/worker_partition

About

Provides a demo of DDC using Ada's Distributed Systems Annex (DSA).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages