updated class diagram and design document
git-svn-id: svn://anubis/gvsu@403 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
parent
d055d8551b
commit
0081edb738
Binary file not shown.
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 47 KiB |
@ -134,9 +134,39 @@
|
||||
of the worker nodes going down and still produce the final image.
|
||||
</p>
|
||||
|
||||
<span class="update">
|
||||
<p>
|
||||
Update:
|
||||
To implement this distributed algorithm, I thought about using
|
||||
the MPI framework.
|
||||
MPI, however, was not natively designed to handle fault tolerance.
|
||||
So, I decided to implement the distributed framework with raw
|
||||
TCP sockets.
|
||||
This solution is very portable because it only relies on
|
||||
TCP socket availability and not a third-party library.
|
||||
</p>
|
||||
<p>
|
||||
At first TCP was not sending the message data fast enough
|
||||
for my program.
|
||||
I considered switching to UDP but instead turned on the
|
||||
socket option TCP_NODELAY which disables the "Nagle" buffering
|
||||
algorithm and sends the data as soon as it is available.
|
||||
This made using TCP feasible and my CPU utilization grew.
|
||||
</p>
|
||||
<p>
|
||||
The application-level protocol is very simple.
|
||||
It was designed to transmit short messages across the wire.
|
||||
An integer representing the message type is transmitted,
|
||||
followed by the payload of the message.
|
||||
Task identifiers are sent using a single 4-byte integer.
|
||||
Bitmap data is transmitted as packed data, 3 bytes per pixel.
|
||||
</p>
|
||||
</span>
|
||||
|
||||
<li>Program Organization</li>
|
||||
<p>
|
||||
The follows the object-oriented design paradigm.
|
||||
The program follows the object-oriented design paradigm.
|
||||
It is written in C++ so that it is portable and efficient.
|
||||
It is made up of a collection of modules, which are organized
|
||||
into functional groupings.
|
||||
Each module implements one or more classes of objects for the system.
|
||||
|
Loading…
x
Reference in New Issue
Block a user