An Implementation of a Hopfield Network Kernel on EARTH - Amaral, José N.; Gao, Guang; Tang, Xinan (Anais do International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), 1998)
EARTH is a multithreaded program execution and architecture model that hides communication and synchronization latencies through fine-grain multithreading. EARTH provides a simple synchronization mechanism: a thread is spawned when a pre-specified number of synchronization signals are received in its synchronization slot - signaling the fact that all dependences required for its execution are satisfied. This simple synchronization mechanism is an essential primitive in Threaded-C — a multithreaded language designed to program applications on EARTH. The EARTH synchronization mechanism has been efficiently implemented on a number of computer platforms, and has played an essential role in the support of a large number of parallel applications on EARTH. An interesting open question has been: is such a simple mechanism sufficient to satisfy the synchronization needs of the large set of applications that EARTH can implement? Or could the EARTH programming model benefit from the implementation of more elaborate synchronization mechanism? In such case, what are the benefits and tradeoffs of adding this mechanisms to EARTH? This paper describes the implementation of I-structures under the EARTH execution and architecture model. An I-structure is a data structure that allows for the implementation of a lenient computation model. A read operation can be issued to an element of an I-structure before it is known that the corresponding write operation has produced the value. We also introduce a new parallel kernel based on the Hopfield Network and demonstrate how the I-structure support on EARTH can be utilized. We finish presenting a complete Threaded-C program to solve the Hopfield kernel is also presented.