TCS Innovation Labs–Performance Engineering
We conduct fundamental and applied research in the field on Performance Engineering of Software Systems. Research AreasCurrent research is categorized into following focus areas
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 TestingThis 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 PerformanceToday’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 ModelingThe 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 ITMulticore 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 TradingA 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 ToolsProfiling and Testing Tools Tools and Solutions under this category fall below the umbrella product, FASTEST: FASTEST comprises of
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:
Multicore for IT
|