1. Solutions for Financial Services
High Speed Java Communications
PRODUCTS
Java Fast Sockets. High perfor- FastMPJ. High Performance
BENEFITS mance Java socket implementation Message Passing Java implemen-
• Extreme low-latency that supersedes standard Java tation. High performance access to
• Record throughput sockets. Features: both local and remote memory
• Direct integration Low latency shared memory (LDMA & RDMA). Features:
• The fastest Java TCP/IP communication High performance intra-node
alternative High speed networks support communication
• Cost reduction and (e.g., InfiniBand) Efficient RDMA transfers over
productivity increase InfiniBand and RoCE
User-transparent for all Java
applications Ideal for multicore servers,
APPLICATIONS cluster and cloud computing
Direct performance increase
• High Frequency Trading
Efficient replacement of Scalability up to thousands of
• Market Data
TCP/IP stack cores
Distribution
Fast zero-copy protocol Highly productive development
• High Performance
Computing and maintenance
• Big Data Processing Fully portable, as Java
• High Performance Cloud
Computing
PERFORMANCE RESULTS
Testbed: Sandy Bridge E5-2643 3.30 GHz quad-core with 1600DDR3 memory,
PCI Gen3, InfiniBand FDR ConnectX-3 NIC.
2. OVERVIEW OF THE PROPOSED SOLUTION COMMUNICATIONS WITH LOW JITTER
Application JFS on shared memory:
Sockets
“Fast”
TCP/IP Protocols
High Performance Network Driver
High Performance Network
Direct Java Fast Sockets integration Mean = 95% =
5% = 0.262 0.283 0.305
User/application transparent (without Min = 0.236
Median 90% = 99% =
source code modification) since it imple- = 0.28 0.299 0.315
ments the standard JVM socket API.
FastMPJ based Development
Development of specific communications
module
Fault-tolerant and portable
Metrics in microseconds
Straightforward and high level API,
extremely productive development. FastMPJ over InfiniBand:
FastMPJ code example:
import mpi.*;
public class Echo{
public static void main(String args[]) throws Exception {
args=MPI.Init(args);
int myId = MPI.COMM_WORLD.Rank();
int size = MPI.COMM_WORLD.Size();
int peer = size - 1 - myId; Mean = 1.204 95% = 2.577
5% = 0.959
CustomContainer data = new CustomContainer(); 90% = 2.225 99% = 2.828
if(myId==0){
data.set(myData);
MPI.COMM_WORLD.Send(data,MPI.Object,peer,messageId);
System.out.println(“Sending "+data+" to Process "+peer);
} else {
MPI.COMM_WORLD.Recv(data,MPI.Object,peer,messageId);
System.out.println(“Receiving "+data+" from Process"+peer);
}
MPI.Finalize(); Metrics in microseconds
}
}
CONTACT
Why Message-Passing? Email: info@javafastcomms.com
Client-Server: Service oriented. Limited WWW: http://www.javafastcomms.com/
scalability
http://www.fastmpj.com/
Message queueing: Data oriented. Scala-
http://www.javafastsockets.com/
ble but limited performance.
Message passing: Process oriented. High
performance and scalability. USPTO Patent protected technology developed at the:
SERVICES PROVIDED
Turnkey solutions
Full support and development of FastMPJ &
JFS-based solutions With full support by:
Low latency Java consultancy and training