Release of TCA Version 7.9 Summary: ======== Release 7.9 is an optimization release. No added functionality. The system just runs a lot faster, in some cases, faster than TCX. For comparison, I have run a number of tests comparing TCA 7.8, TCA 7.9 and TCX 12.3 (The most recent TCX version I can find). Test 1: ======= One process makes 200 queries of another process. The data size of each request message varies from zero bytes to 1 Megabyte. The reply is alway one integer (4 bytes). All tests were conducted on a sparc 10 running Sunos. All processes where run on the same machine. Using different machines runs up against the limited bandwidth of the network (10 Mbits/s). TCA 7.8 TCX 12.3 TCA 7.9 Bytes/msg msg/s bytes/s msg/s bytes/s msg/s bytes/s --------- ----------------- ----------------- ----------------- 0/4* 242 0.00 562 2,249.84 400 0.00 16 233 3,735.20 545 8,722.55 370 5,921.10 256 221 56,501.66 508 130,134.53 352 90,226.62 1K 209 213,619.94 472 483,341.50 333 341,455.72 4K 119 485,990.09 256 1,046,894.31 264 1,081,642.00 16K 53 871,264.56 105 1,722,838.00 134 2,188,539.75 64K 17 1,118,213.75 31 2,000,986.88 42 2,735,001.75 256K 5 1,194,023.12 9 2,237,433.00 12 3,059,980.25 1M 1 1,220,855.00 2 2,257,506.00 3 3,171,188.75 * TCX version crashed when a null format was used, so I used a single integer. Comments: For TCA, the maximum message rate has almost doubled and the maximum through put has almost tripled. Comparing TCA and TCX, we see that for very small messages, TCX is faster by 40%. For larger messages, TCA has a higher throughput. For 1Megabyte messages, TCA is 50% faster than TCX. Somewhere around 2K, is the cross over point where the systems have the same message rate and throughput. Test 2: ======= Send 200 messages from one process to another, optimizing the program for raw speed using each messaging system. TCA 7.8 TCX 12.3 TCA 7.9 Bytes/msg msg/s bytes/s msg/s bytes/s msg/s bytes/s --------- ----------------- ----------------- ----------------- 0/4* 412 0.00 2578 10,311.94 657 0.00 16 363 5,801.64 2170 34,715.44 582 9,317.85 256 327 83,705.95 1414 361,880.94 426 108,941.50 1K 280 286,760.03 853 873,005.00 386 394,999.22 4K 143 585,518.81 258 1,057,488.00 302 1,236,209.12 16K 58 955,469.81 104 1,699,761.38 135 2,210,402.50 64K 18 1,156,581.38 29 1,913,896.88 42 2,775,157.00 256K 5 1,218,955.25 8 2,013,264.62 12 3,068,828.50 1M 1 1,229,735.12 2 2,140,054.50 3 3,199,656.00 * TCX version crashed when a null format was used, so I used a single integer. Comments: The TCA maximum message rate has increased by 60% and the through put has almost tripled. Comparing TCA and TCX, we again see the same pattern where TCX is faster for messages will little data and TCA is faster for larger messages. This is mostly due to the topology. TCX messages need only make a single hop, while TCA messages go through the central server. The TCX programs were also optimized to block on the read port and not do a select to see which socket/file had available input. Doing a select would slow the message rate down and is needed if the module receives input from more than one other module. Test 3: ======= Same as test 2, except using the central routing feature of TCX. This was a recent addition that allows messages to be routed through the central server. TCA 7.8 TCX 12.3 TCA 7.9 Bytes/msg msg/s bytes/s msg/s bytes/s msg/s bytes/s --------- ----------------- ----------------- ----------------- 0/4* 412 0.00 657 2,627.23 657 0.00 16 363 5,801.64 507 8,111.76 582 9,317.85 256 327 83,705.95 509 130,202.04 426 108,941.50 1K 280 286,760.03 336 344,414.69 386 394,999.22 4K 143 585,518.81 167 685,426.12 302 1,236,209.12 16K 58 955,469.81 58 950,648.81 135 2,210,402.50 64K 18 1,156,581.38 17 1,083,263.25 42 2,775,157.00 256K 5 1,218,955.25 4 1,160,282.50 12 3,068,828.50 1M 1 1,229,735.12 1 1,202,580.62 3 3,199,656.00 Comments: When routing the messages through the central server, TCX slows down considerably. The message rate for small messages is about the same. (Don't read too much into the exact match for the smallest messages.) For larger messages, the rate is about the same for TCA 7.8. Conclusions: ============ If you need a very high message rate with little data to be transfered, then TCX has some speed advantages. For significant data, or if synchronization is needed, the TCX speed advantages disappear, and for large messages, TCA 7.9 is the clear winner.