1 |
Issues with the current coupler: |
2 |
|
3 |
It should have been written in C. |
4 |
|
5 |
It should have more "safe mode" timeout options. For example |
6 |
poll for receiver ready before sending to catch deadlocks. |
7 |
Poll for receive and trap too many spins waiting |
8 |
for an event. |
9 |
|
10 |
There is only one coupler. |
11 |
Coupler has no concept of being "tiled" itself. A heirarchical |
12 |
structure of coupled "couplers" could be envisioned. |
13 |
Only one tile set per process can be registered. |
14 |
|
15 |
No real support for multi-threaded codes. |
16 |
|
17 |
Coupler itself is pure sequential |
18 |
|
19 |
The coupler only supports transfer of two-dimensional fields. |
20 |
|
21 |
Wrong name errors are not trapped clearly. |
22 |
|
23 |
Consistency between components is hard to validate. |
24 |
|
25 |
Coupled setup consists of a coupling layer plus one or more component |
26 |
models and communications API for talking between the coupling |
27 |
layer and the components. |
28 |
|
29 |
Coupling layer really provides two functions |
30 |
|
31 |
1. An limited form of associative storage into which component models can export |
32 |
data and from which component models can import data. Data is exported |
33 |
and imported using a text string to identify it. Abstraction is similar |
34 |
to that of a simple file system. There are implicit synchronisation |
35 |
rules that need to be adhered to. Could be extended to allow file system |
36 |
access and/or http based communication. |
37 |
|
38 |
2. Extrapolation and interpolation modules which are used to map |
39 |
data between component models having differing grids. |
40 |
|
41 |
Associative Storage Function |
42 |
============================ |
43 |
Data is exported and imported using a text string to identify it. Abstraction |
44 |
is similar to that of a simple file system. In the current coupler |
45 |
implementation there are implicit synchronisation rules that need to be |
46 |
adhered to. A component model cannot asynchronously request data. Could be |
47 |
extended to allow file system access and/or http based communication. |
48 |
|
49 |
Extrapolation and interpolation |
50 |
=============================== |
51 |
This maps data between different representations. |