TCS RESEARCH

TCS RESEARCH
TCS Research
Home Labs Technology Labs Performance Engineering

TCS Innovation Labs–Performance Engineering


Lab Head: Rajesh Mansharamani

We conduct fundamental and applied research in the field on Performance Engineering of Software Systems.  

Research Areas

Current research is categorized into following focus areas  

  • Profiling and Testing
  • Network Performance
  • Performance Modeling
  • Multicore for IT systems
  • Algorithmic Trading  

Each focus area deals with different aspect of performance engineering of IT systems. Following is a brief introduction to the Lab work in each of the above-mentioned areas.  

Profiling and Testing  

This applied research work deals with automating and reducing complexity of performance engineering tasks. This work is targeted at the performance testing phase of the Software Development Life Cycle. The intended consumers of this research work are performance test engineers, project managers of performance-critical applications / products and developers.  

In a performance test environment most elements are statically (Fixed workload, One application state and One hardware environment) represented whereas in real-life all constantly change. In Production, one may see unanticipated application access patterns, data volumes grow, environment is shared etc. Currently there are not many “levers” in conventional performance testing that can convert a static representation into dynamic one and predict accurate results over a constantly changing application. FASTEST framework overcomes these challenges by integrating TCS developed Profiling and Emulation solutions with a Load Generator.  This enables bridging the gap between Production and Development / Test environments and provides the capability to detect not just current performance defects of the application/ system but also uncovers latent defects that may manifest only over a period of time.

Thus, FASTEST enables rigorous testing and handling what-if scenarios which helps improve quality and overall responsiveness of applications / systems / products at less time, costs and efforts.  

Network Performance  

Today’s IT world is highly interconnected. Applications within and across the Enterprise talk to each other. Besides, the users of an application may be geographically distributed. Networks connecting the users and the application remains the focal point of all the activity. Next, the diversity of network infrastructure from 56 kbps dial-up lines to high speed broadband lines makes application performance a function of network speeds. Finally newer advancements in network technology like 10 Gbps / 40 Gbps networks, TCP offloading engines, content-specific caching and compression devices etc. make the performance landscape very interesting.  

Performance Engineering Lab recognizes the importance of network performance and gives special focus to optimize network usage and minimize cost. To this effect, the Lab focuses on building WAN Emulators and Network characterizers. The Emulator can create an effect of the target environment in the source environment, say WAN environment in a LAN. Similarly, network characterizers can capture different parameters like available bandwidth, latency, packet drops, jitters etc. that characterize a network.  

Other network performance engineering work that happens in the Lab is related to creating Low Latency Queues. Low latency Queues deal with extremely low latencies (~ few microseconds) and high-throughput (millions per second). Low latency messaging is applicable in very niche areas like algorithmic trading, high-volume stock exchanges etc.  

Performance Modeling  

The Lab focuses on two aspects of Performance Modeling. The first one is the conventional way of modelling IT systems applying rules and knowledge of queuing theory. The other aspect is where a Business Process is considered as a set of work items and humans involved are considered as processing resources. Then applying a blend of human behaviour and queuing theory can business processes be optimized using performance models?  

Multi-core for IT  

Multicore technology is the latest trend in processor technology evolution. As the single core servers reach the threshold of high power computing abilities, and Moore’s law of doubling the processor performance every two years, does not come to a halt, processor manufactures have designed intuitively multicore processors. Multicore houses multiple cores in an IC. Each core in a multicore processor acts as an execution unit which can run in parallel along with other cores. This architecture provides immense capabilities to run tasks in parallel. As most of the existing applications in today’s IT enterprise are meant to run in a sequential fashion, it requires a paradigm shift in sequential programming to parallel programming. To take the advantages out of this technology an application needs transformations to be able to run in multicore processor.  

The Lab focuses on transformation of applications to harness the powers of multi-core without having to redevelop the application.  

Algorithmic Trading  

A recent milestone in the evolution of electronic trading is the development of (semi) automated algorithmic trading. Algorithmic trading in a broader sense comprises of a framework of mathematical calculations and electronic trading to determine optimal trading strategies consistent with overall investment objective and better execution. Algorithms can identify trading opportunities, anticipate and forecast dynamic volume curves, determine volume & price patterns faster than any human being. Algorithms can respond dynamically to complex signals, and determine the optimal execution time for an order that will cause the least amount of market impact on the price of an underlying asset. Algorithms can help in maintaining balance between liquidity, cost and market impact. Algorithmic trading enables dynamic monitoring of trading performance through-out the life-cycle of an order. As a result, algorithms are optimized to deliver the best performance. Based on the investment objective, one can develop and back-test these strategies against historical as well as live financial data. The widespread use of algorithmic trading and numerous choices of trading strategies have led to the problem of selection of optimal algorithmic strategies.

The Lab focuses on implementing few algorithmic trading strategies.  

Solutions and Tools
 

Profiling and Testing Tools  

Tools and Solutions under this category fall below the umbrella product, FASTEST:  

FASTEST comprises of

  1. TCS Java Profiling Solution (Jensor) for getting information from Java tier
  2. TCS Transaction Analyser Solution (ScrutiNet) for collecting tier-wise response times
  3. TCS WAN Emulation Solution (WANem) for emulating a WAN in a LAN environment
  4. TCS DB Production Emulator (DBProdem) to predict query response times under higher volumes  

FASTEST also integrates with commercial and open source load injectors viz. HP Load Runner, Microsoft VSTS and The Grinder.

Network Performance  

Tools and Solutions under this category are:

  1. TCS WAN Emulation Solution (WANem)
  2. WAN Characterizer for WANem
  3. TCS Low Latency Queues for low latency messaging  

Multicore for IT  

  1. SAFE Framework (Multicore application development framework)
  2. SDML (Framework for parallel processing of large XML files)