Gautham Ganapathy

Faringdon, United Kingdom

Summary

Languages:

English, Malayalam

Experience

Software Developer, Halliburton, Abingdon, UK

March 2013 - Present

Currently working in Landmarks’ graphics group, working on adding Virtual and Augmented Reality support for collaborative visualization to DecisionSpace using Unity and OpenVR/SteamVR. Before this, I was working on developing a component to plot very large heightfields using Java, OpenGL and OpenInventor. (Java, C#, Unity, OpenGL, Photon, Protobufs, OpenInventor)

Prior to this, I was in the Pinnacle group where I developed a realtime surface-microseismic imaging application running across a GPU-based (Tesla K40/K80) micro-cluster using a combination of CUDA, OpenMPI, OpenMP and Boost.Thread. Additionally, I optimized micro-seismic imaging software running on a cluster as well as porting and optimizing the software to run NVIDIA Tesla GPUs. Achieved a 6.6x speedup in performance in non-GPU production code as well as a further 20x speedup on Tesla K20c GPUs. (C/C++, CUDA, multithreading, clustering)

Other work includes reorganizing the build system, optimizing, parallelizing and clustering various programs, setting up a test suite, fixing bugs and general code maintenance. Also developed a basic genetic algorithm framework in Python and am currently adapting our velocity model optimization program to use genetic algorithms to find better travel time tables. (C/C++, Python, Perl, CUDA, Torque/PBS, Genetic algorithms)

-----------------------------------------------------------

Software Developer, Textensor Ltd, Edinburgh, UK

April 2012 - Feb 2013

Developed PyLEMS (https://github.com/LEMS/pylems), a LEMS (http://neuroml.org/lems) API and simulator in Python. The simulator reads in and parses a LEMS model specification, and then dynamically generates executable Python code corresponding to the model. (Python)

Also worked part-time on a web-based transcript streaming and editing application using JavaScript, Node.js and PHP. (Javascript, Node.JS, PHP)

-----------------------------------------------------------

Senior Software Developer / Software Architect, Wipro Technologies, Bangalore, India

Sept 2000 - Aug 2010

Worked as a developer and architect in the DSP/Multimedia and HPC groups, developing, porting and optimizing various codebases for embedded multimedia applications and HPC applications (primarily for GPUs).

Key projects:

CUDA optimization for seismic imaging (GPU)

Ported and optimized a Fortran-based Real Time Migration (RTM) code- base from Shell to C and then CUDA to run on NVIDIA’s Tesla C2050 card. Initial effort estimation and design, and phase 1 of the optimization work. Also ported and optimized the 3D inversion code in Seismic Unix (suinvzco3d) to run on an NVIDIA C1060 Tesla card. Speedups achieved were in the range of 48x-52x. (FORTRAN, C++, CUDA)

CUDA optimization for a microscope imaging application (GPU)

Ported and optimized the selected image processing algorithms for a microscope imaging application for Olympus. Speedups achieved were in the range of 35x-40x. (C++, CUDA)

Development and optimization of BluRay video decoding firmware

Led a team for development and optimization of VC1 decoder firmware on the Quartics QV1500 platform, a 12-core VLIW-based SOC. The firmware for each DSP was developed using assembly language from a SystemC model and then optimized to decode HD videos. (C/C++, SystemC, Assembly Language)

Porting and optimization of video decompression code

Ported and optimized Wipro’s H.264 decoder IP for TI’s C64x and ARM’s ARM11 architectures, including C and assembly-language optimizations, as well as optimal pipeline and cache usage optimizations for ARM11. (C/C++, Assembly Language)

Skills

Data Science, Git, Linux, Machine Learning, NumPy, Pandas, SciPy, Scrapy, TensorFlow

Joined: November 2018