Photo courtesy: Durwasa Chakraborty

Rupesh Nasre.

Home | Teaching | Research | Mentoring | Service | Contact

I am looking for students/staff with knowledge of Parallel Programming or interest in Domain-Specific Languages. Even if you can work remotely (formally or informally, for at least 4 months), contact me with your CV.

Our group is named Gajendra, and our research focus is compilers and parallelization. We have developed a domain-specific language for graph algorithms, know how to efficiently compute cycles in a graph with millions of vertices, and learning how to deal with evolving social networks.  


>>>Systems Research at CSE, IITM

Program Analysis through Ontologies

We propose an extensible static analysis framework which enables formal representation of external knowledge, such as usage knowledge of libraries and domain knowledge. Utilizing this knowledge and the program triples, we compute the semantic information, called static trace of the program. It is generated through path-sensitive intraprocedural traversal of the program. The main contribution of the framework is to store the static trace as RDF triples called semantic triples. They are described using the Program Analysis ontology. In the framework, a client-analysis is specified by a set of conjunctive expressions that use SPARQL (W3C RDF query language) queries. The framework is effective for the client-analyses that warrant sound and approximate information.

  • OPAL: An extensible framework for ontology-based program analysis; Dileep Kumar Pattipati, Rupesh Nasre, P. Sreenivasa Kumar; SPE 2020 [Paper] [Download Artifact]

Graph Algorithms on GPUs

The application of graphs to represent information is not new to computer science, but in recent years the scale of these graphs has grown many-folds and have recently reached the petabyte sizes. The current CPUs are inadequate to process the petabyte scale of the graphs. Modern GPUs are highly parallel, which makes them the right choice for processing such large scale graphs. Real world graphs also evolve over time, which involve repeating analysis, over a large number of versions of the graphs. We have developed efficient extensions to find strongly connected components, and to find shortest paths in dynamic graphs.

  • LightHouse: An Automated Code Generator for Graph Algorithms on GPUs; Shashidhar G, Rupesh Nasre; LCPC 2016 [Download artifact]
  • GPU Centric Extensions for Parallel Strongly Connected Components Computation; Shrinivas Devshatwar, Madhur Amilkanthwar, Rupesh Nasre; GPGPU 2016 [Download artifact]

Effective Synchronization in Parallel Programs

We present an algebraic model of synchronization for hierarchical data structures. Each element of the algebraic structure denotes a synchronization option and represents a trade-off between the amount of concurrency and the cost of synchronization. The algebraic formulation forms the basis for a framework of synchronization mechanisms on a hierarchical data structure. Effective synchronization is key to scalable parallelization. Several applications work on an abstract hierarchy of objects, and a parallel execution on this hierarchy necessitates synchronization across workers operating on different parts of the hierarchy. Existing synchronization mechanisms are either too coarse, too inefficient, or too ad hoc, resulting in reduced or unpredictable amount of concurrency. With our formulation, we offer a range of possibilities in choosing synchronization in a hierarchical structure.

  • DomLock: A New Multi-Granularity Locking Technique for Hierarchies; Saurabh Kalikar, Rupesh Nasre; TOPC 2017, PPoPP 2016 [Download Artifact]


  Books / Thesis
    Python Programming
    Rupesh Nasre.

    Distributed Graph Analytics
    C. Unnikrishnan, Rupesh Nasre, Y.N. Srikant

    ISBN: 978-3-030-41886-1

    Code from the book
    Scaling Context-Sensitive Points-to Analysis
    Rupesh Nasre.
    Lambert Academic Publishing

    ISBN: 978-3-659-97718-3
    Scaling Context-Sensitive Points-to Analysis
    PhD Thesis
    IISc Bangalore
507098India A system and method for bug identification and fault localization through domain-ontology
432922IndiaSystem and method for automatic parallel code generation for graph algorithms for multiple target architectures
386511IndiaA method for consensus prioritization of regression test-cases supported by parallel execution windows
ChinaA pointer analysis method based on offline constraint graph
8,346,732USMethod and apparatus for providing high availability of a database
8,086,603US Using the LUN type for storage allocation [updated]
7,925,631USMethod and system for reporting inconsistency of file system persistent point in time images and automatically thawing a file system
7,890,504US Using the LUN type for storage allocation [original]
7,694,095US Managing snapshots using messages



  • Qualcomm Innovation Fellowship. Ashwina Kumar, Nibedita Behera, Rupesh Nasre.
  • AMD GPU Code Generation, AMD Research HPC Fund
  • Large-Scale GPU Graph Analytics, Shell. Kalyan T V (IIT Ropar), Rupesh Nasre
  • Modern C++ for Tensorflow Computations, KLA.
  • HPC Application Frameworks, NSM. Rupesh Nasre, Shivasubramanian Gopalakrishnan (IITB)
  • Consistency in Distributed Systems, Google Cloud Platform credits.
  • Medical Imaging, DBT. Arun Thittai (AM, PI), Ganapathy Krishnamurthi (ED), Rupesh Nasre
  • Parallel Clustering, Shell
  • Exploratory Research Grant, IITM
  • Kris Gopalakrishnan Endowment for YFRA
  • Business Rule Extraction, Hitachi. Ravindran Balaraman (PI) and Rupesh Nasre (co-PI)
  • University Grant, Accenture. Sutanu Chakrabarti (PI), Deepak Khemani and Rupesh Nasre
  • New Faculty Seed Grant, IIT Madras
  • New Faculty Initiation Grant, IIT Madras