The TCS Advantage
- Domain-driven approach: Our team works closely with domain experts to understand business / algorithmic logic before implementation. This enables efficiencies in time and cost.
- Expertise: TCS has an established performance engineering practice for the enterprise. With the acquisition of CRL, we also have significant expertise in performance engineering for technical computing. This unique blend of capabilities helps us deliver results to customers.
- Test bed: We have a large HPC cluster and access to latest technologies. This provides opportunities for exploring innovative solutions and possibilities.
Solutions We Offer
TCS has significant expertise in using HPC concepts for the performance optimization of applications. These concepts are centered on parallelization and span across software and hardware.
We have experience at all of the following levels at which parallelism can be introduced or modified.
- Algorithmic Level: Existing algorithms are analyzed in detail and modified to achieve optimal performance on target platforms.
- Design Level: Architectural design choices (like hardware acceleration, message passing libraries, threading models etc) are reviewed and improved to make optimal use of resources.
- Code Level: Poorly written code results in inefficient execution of good algorithms and prevents compilers from generating the most efficient code for the target platform. Manual optimization (based on the target platform) can improve the performance of applications significantly by introducing changes to data structure design, data access patterns and code layouts.
- Compile /Assembly Level: A number of program transformations can be achieved by optimizing the compilation process, leading to superior application performance.
TCS has developed a systematic methodology (including an extensive toolkit) for the identification, definition and implementation of the right parallelization strategy.
We are well-versed in hardware acceleration paradigms (e.g. CUDA, OpenCL, Verilog and VHDL) and have significant experience in shared memory paradigms (e.g. Pthreads, OpenMP, Cilk and Threading building blocks) and distributed memory paradigms (like MPI and PGAS).
- Faster execution
- By optimizing end-to-end application performance
- Efficient resolution of issues
- By ensuring higher application scalability
- Reduction in licensing costs
- By providing a viable alternative to COTS products