Madeleine is a high performance communication interface specifically tailored for distributed multithreaded environments .
In this paper, we have discussed the respective functionality of VIA and Madeleine. VIA appears as a definite progress towards a portable and efficient general-purpose communication interface for high performance networking. However, we have shown that its level of abstraction is in some respect so low that using it directly requires an uttermost expertise from the programmer about the underlying environment. This eventually hinders the portability of the application as far as performance is concerned. In contrast, Madeleine is a medium-level portable interface specifically tuned for distributed multithreaded environments. Thus, it can provide the programmer with higher abstraction without sacrificing performance. An interesting challenge was thus to explore the implementation of Madeleine on top of VIA. It appears that several strategies can be used, depending on the specific underlying environment: quality of the VIA implementation, operating system, network characteristics, etc.
As a validation, we have demonstrated a preliminary implementation of Madeleine on top of the Berkeley M-VIA implementation of VIA on top of Fast-Ethernet. The performance results are quite exciting, as Madeleine/VIA is faster that raw VIA in some cases! Our experiments provide some interesting guidelines for future developments. As a final moral, this shows that building sophisticated communication protocols on top of VIA requires extreme care. This is probably out of reach of the common humble programmer, and we believe that it should be encapsulated into optimized medium-level interfaces such as Madeleine.