High Performance Applications for C/C++

Overview

The zNet High Performance Application (HPA) product is intended for applications that benefit from parallel computation distributed on the network via zEngine servers (zEngine is a part of zNet HPA installation). zNet HPA works out-of-the-box, and can upload user defined libraries and execute their functionality to service client requests in parallel. Communication between a Zircon-enabled client application and a pool of zEngine(s) is managed by the zNet Load Balancer, which dynamically discovers available zEngines and equalizes their load in real-time. The Load Balancer is part of the zNet library that is linked with client applications. 

zNet HPA contains the zAdmin command line and zStudio graphic tools to support systems operations and monitoring. 

The zNet HPA functionality expands the zNet multicore product line with the following patterns: Brokers with custom filtering, Sticky Engines, distributed cache (zCache), event notification (zNotify), and pub/sub.

Target Audience

C/C++ programmers maintaining or developing distributed software that requires high performance characteristics.

Features & Benefits

  • Rapid programming with zNet task and data  parallelism patterns and zEngine container
    • Evolutionary changes of application without adverse affect on a business logic
    • No server side programming - zEngine service executes any user's library
  • Direct data exchange between distributed components
    • Reduces latency 
    • Eliminates potential throughput bottlenecks
    • Eliminates single point of failure
  • Scheduler/Broker Co-located within client  application (linked-in)
    • Better performance by eliminating extra hops between components
    • Immediate scalability up to 1,000 network cores for a single application
    • Effective distribution of large numbers of fine-grained compute tasks (msec duration)
  • zNet provides excellent building blocks, which can be used to develop higher-level custom functionality without sacrificing performance

Technical Specs

In addition to zNet Multicore the zNet HPA package offers:

  • Common API for multi core and distributed core
  • Local and Remote High Performance Queues (HPQ) for inter-thread and inter-process communication (one per process)
    • Supporting multiple worker thread models:
      • With a dedicated pool of worker threads
    • Persistent, supporting and syncing local and remote commit on disk to ensure data delivery
  • Binary protocols supporting any built-in and user-defined data types
  • 40 micro sec avg. latency
  • Programming patterns
    • Broker Messaging with custom filtering
    • Load Balancer with real-time feedback
    • Sticky Engine 
    • Distributed cache (zCache)
    • Event notification (zNotify) 
    • Pub/Sub Messaging
  • C++ Application Server (zEngine) in COTS and custom Integration packages