Interfaces
Byte Array  Float Array  Structure 
Client-Server
Client  Server  Configuration  Running  Performance 
Publish-Subscribe
Publisher  Subscriber  Configuration  Running  Performance 
Discussion 

This report documents Ice (Internet Communications Engine) useability and performance tests done in October 2006 by John Storrs . Ice is an object-oriented middleware package from ZeroC , available under both commercial and open source (GPL) licences. It is a successor to CORBA .

The tests were designed and carried out in cooperation with Andrei Maslennikov of the CASPUR Inter-University Computing Consortium in Rome. They were motivated by discussions about middleware for the ITER CODAC and the ITM Code Platform, but also have possible relevance to JET and MAST. Issues raised included performance in client-server and publish-subscribe configurations, programmer ease of use, configurability, and whether a generic middleware API is feasible, independent of particular implementations. The tests provide performance figures for various message sizes, and the test code, summarised in the following sections, casts light on the other issues.

The test hardware, at CASPUR, consists of 5 high performance Linux workstations (bigbeast, storm08, storm09, storm10, storm11). The bigbeast system is dual core Intel bi-processor (4-cpu). It has a 3GHz cpu clock speed, 8GB RAM, and 4 1-Gigabit Ethernet interfaces bonded to a single IP address. The storm systems are 2-cpu, with a slightly lower clock speed and a single 1-Gigabit Ethernet interface connected to one of the 4 bigbeast ports. Maximum possible network throughput to bigbeast is thus 4 times the maximum possible throughput of 1-Gigabit ethernet, seen in tests to be about 117MB/sec.

Here is the C++ test code source.

This document is available in html and pdf versions.