Thursday, July 30, 2009

benefits of multi threaded programming

Historically, code written is sequential, which means, code is executed one instruction after the next in a monolithic fashion, with no regard to the many possible resources available to the program. Overall performance can be serverely degraded if the program performs a blocking call. Why is it that many programs are sequential? One guess is that most of us think in a sequential manner. Parallelizing our thoughts does not come naturally nor is it an easy task.
However, with the increasing availability of Symmetric-Multiprocessing machines, and even more advanced multi-core processors; programming multithreaded code is a skill worth learning.
Threads can add substantial performance improvements to certain types of applications, even on single processor systems. Applications that require accessing data from multiple sources, performing different types of manipulation on data and/or transfering data to multiple end-points are all potential for threaded applications.
Basically, anytime a program sequence may be stopped waiting; that sequence is a good candidate for creating a thread. A program sequence may be stopped waiting for data from a hardware device, waiting for user input or waiting for a specific state or condition to be met.
NexusWare Core has enabled developers to develop and successfully deploy applications such as Lawful interception applications, Class 5 Soft-switch applications, SS7 line monitoring, SS7 STP, Suite of GSM mobile applications - SS7 Link replacement, Roaming Broker, Protocol converters, Radar data processing, defense applications and many more.
These types of applications are complex and require access and manipulation of data from many different data sources. Creating multiple threads within these applications has shown dramatic performance gains. Multi-threading are a good fit for the types of applications that are performed on NexusWare target hardware.

No comments:

Post a Comment