HIGH PERFORMACE COMPUTING


Towards Implementation

Key to distributed systems is how process of classes in an object oriented Systems communicate.

A process is a free-standing block of code, forming part of a total system, running in parallel with other processes.

others terms for a process are “task” or “Thread”

In the world of OOA/OOD a class may be implemented as a process under the control of the operating System

Executing of its methods is determined by the “scheduler”

In system analysis Components are candidates as processes

Designed to be free standing.

We have two types of methods processes can intercommunicate, synchronous and asynchronous!

Synchronous

-Standard sequential methods as is the case with conventional program where the program is executed in memory as the piece of code is written.

-Process release control only when ready!

-Slow when you have multiple processes architecture and process control switching depends on the source code and when the programmer pre-defined switching points.

-This approach requires long functions to be split up to allow other processes to share CPU time - complex coding required.

-Time triggered: all functions must be completed within intervals defined by a clock!

-For data transfer applications and functions this approach causes no issues with data clash!

Asynchronous

-Concurrent processes on separate processors

-Each run at its own speed


“In high performance computing find maximum parallelism in problem being solved is critical - execute everything that can be executed in parallel!” -Professor LEA


Asynchronous

- Concurrent processes on separate processors

-Each run at its own speed

-Clashes may occur in data transfer!

Options to implement Asynchronous processes

-Complex multi-processors like the internet IP based communication, API web services -based communication

-Bus network - or logical bus with JMS, EMS, Tibco Messaging Platform, Solice Queue (critical financial messaging with resilience built in.

-Reduced performance but lower cost of ownership

-Switching requires orchestration or switching scheduler.

-Selection of highest priority to respond to urgent external events

Another approach to asynchronous architecture implementation is Event-Driven processes

-External (asynchronous) events each activate an associated process (function|)

-Events may have to wait for service

-This architecture has no problems with data transfer

Interrupts

-An interrupt activates one process asynchronously with respect to other (synchronous) --processes

-Data clashed may occur!

-Events may have to wait for service

-This architecture has no problems with data transfer

Event-driven programming

-External (asynchronous) events each activate an associated process (function|)

-Events may have to wait for service

-This architecture has no problems with data transfer

Interrupts

-External (asynchronous) events each activate an associated process (function|)

-Events may have to wait for service

-This architecture has no problems with data transfer

Event Driven Programming

-Event Dispatcher selects which event to run with multiple messaging channels

-Each handler runs to completion, but the order of running is not defined

-Response time depends on other events

-Multiple events may be held in a queue

“In high performance computing choosing the right architecture is critical to performance! The source code written must match the underlying architecture doing as much as possible in CPU cores, then L1 cache, L2 cache, Memory and as a last resort on disk preferable solid state disk for better performance”

-M Issa - Author!






要查看或添加评论,请登录

Mohamed Issa的更多文章

  • Distributed Computing - Concurrent Processing

    Distributed Computing - Concurrent Processing

    · Nature of Concurrent Processes o The “Scheduler” · Properties of Concurrent Syste Safety and Liveness · Nature of…

社区洞察

其他会员也浏览了