Ganesha Upadhyaya

Ganesha Upadhyaya

Research Interests

  • Software Engineering: Mining software repositories, refactoring.
  • Program Analysis: BigCode program analyses, static program analyses for parallelism.
  • Concurrency and Parallelism: Message passing concurrency, actor-oriented programming, garbage collection, performance analysis, performance reasoning, performance bug detection and fixing.

Appointments

  • Research Assistant, Laboratory for Software Design, Iowa State University, USA, 2010-2016
  • Teaching Assistant, Department of Computer Science, Iowa State University, USA
    • Advanced Topics in Programming Language Semantics (COMS 641), Fall 2014
    • Computer Literacy and Applications (COMS 103), Spring 2015
  • SDE Intern, Amazon.com, Inc., Seattle, WA, USA, Summer 2011
  • Software Developer, SAP Labs, Bangalore, India, 2008-2010
  • Software Developer, Business Objects, Bangalore, India, 2007-2008
  • Software Engineer Intern, HP Labs, Bangalore, India, 2007

Projects

Panini

Panini is a capsule oriented programming language for making concurrent software development easier. The concurrent entities in Panini are called Capsules that communicate via message passing. The Panini’s message passing concurrency is similar to actors. Panini Capsules run on the JVM.
  • Panini Capsules on multicore: For effectively utilizing the multiple cores, capsules needs to be mapped to cores efficiently. Towards this goal, my work proposes a static and modular technique to effectively map capsules to JVM threads. The key idea is that, often the local computation and communication behaviors of the message passing concurrent entities expose the globally beneficial mapping.
  • Automatic Garbage Collection of Capsules: The garbage collection of concurrent entities in the message passing concurrency is difficult. However in Panini, due to its static topology model, the complexity of garbage collection is reduced. I have implemented a static reference counting algorithm for automatic garbage collection of capsules in Panini. To deal with cyclic reference, I identify the capsule in the set of capsules that are part of the cycle, which has message handler with cycle breaking nature and forcibly initiate garbage collection at that message handler [Panini Github]
  • Duck Futures in Panini: We have implemented a generative approach for automatically handling futures in Panini. Panini capsules use duck futures to sending values and also for receiving results. The key idea is that duck futures is an efficient way of implementing transparent futures.
    • Eric Lin, Ganesha Upadhyaya, Sean L. Mooney, and Hridesh Rajan, Duck Futures: A Generative Approach to Transparent Futures, TR15-05, Computer Science, Iowa State University, June 2015 [TR]
  • Study of ordering problems in Panini: As part of this work, we analyzed the ordering problems that occur due to nondeterminism and relate them to the properties of the message passing concurrency model. Ordering problems leads to data races and deadlocks. Knowing the relationship between the ordering problems and the model properties such as messaging semantics (synchronous/asynchronous), message passing/processing semantics (such as FIFO) and data sharing semantics can help to reduce the testing efforts in the message passing concurrency model like Panini.
    • Yuheng Long, Mehdi Bagherzadeh, Eric Lin, Ganesha Upadhyaya and Hridesh Rajan On Ordering Problems in Message Passing Software [To appear: Modularity 2016] [TR]
  • Hridesh Rajan, Steven M. Kautz, Eric Lin, Sean L. Mooney, Yuheng Long, and Ganesha Upadhyaya Capsule-oriented Programming in the Panini Language, Technical Report TR14-08, Computer Science, Iowa State University [TR].

Candoia

Candoia platform and ecosystem addresses the challenge of transitioning MSR research to practice by presenting a novel approach where researchers and practitioners realize their prototypes as apps and Candoia platform (acting as an appstore) handles the details of integration with different VCS, bug databases, language parsers, visualizations, etc. This not only eases the process of building MSR research prototypes by eliminating the need to build the supporting tools, it also makes the prototypes easily accessible and applicable across different MSR project environments. Using Candoia, researchers prototype their research as Candoia apps and publish them. Other researchers and practitioners can browse through available apps, download them and if necessary customize them for their own needs.

candoia-overview


I have worked on building the Candoia platform, specifically defining data scheme and allowing integration of different VCS and bug databases. I have also worked on building Candoia apps for variety of mining software repository tasks and contributed towards different technical writings of Candoia. For more information Candoia.org
  • Nitin Tiwari, Ganesha Upadhyaya and Hridesh Rajan Candoia: A Platform and Ecosystem for Mining Software Repositories Tools [To appear ICSE 2016 Poster Track]
  • Nitin M Tiwari, Dalton D. Mills, Ganesha Upadhyaya, Eric Lin and Hridesh Rajan Candoia: A Platform and an Ecosystem for Building and Deploying Versatile Mining Software Repositories Tools, Technical Report TR15-13, Computer Science, Iowa State University [TR].

ParaSCAN

A Static Profiler to Help Parallelization. Parallelizing a sequential software requires first identifying parts that have potential in terms of computational requirements and then analyzing the dependencies. Often, static parallelization techniques directly perform dependency analyses on the whole software, which makes them complex and conservative. We propose a technique to statically identify parts that have potential and show that parallelism opportunities can be found with less dependency analyses efforts. We have shown that static hot paths may miss parallelism opportunities, hence we propose average case execution paths (ACEPs). For more information refer to parascan-webpage.
  • Ganesha Upadhyaya, Tyler Sondag, and Hridesh Rajan, ParaSCAN: A Static Profiler to Help Parallelization, TR14- 06, Computer Science, Iowa State University, June 2014 [TR][Web].

Publications

  • Yuheng Long, Mehdi Bagherzadeh, Eric Lin, Ganesha Upadhyaya and Hridesh Rajan On Ordering Problems in Message Passing Software [To appear: Modularity 2016][TR]
  • Nitin M Tiwari, Ganesha Upadhyaya and Hridesh Rajan Candoia: A Platform and an Ecosystem for Building and Deploying Mining Software Repository Tools [To appear: ICSE 2016 Poster track]
  • Ganesha Upadhyaya and Hridesh Rajan, Effectively Mapping Linguistic Abstractions for Message-passing Concurrency to Threads on the Java Virtual Machine, OOPSLA'15 [acm]
  • Ganesha Upadhyaya, and Hridesh Rajan, An Automatic Actors to Threads Mapping Technique for JVM-based Actor Frameworks, AGERE'14 [acm]
  • Nitin M Tiwari, Dalton D. Mills, Ganesha Upadhyaya, Eric Lin and Hridesh Rajan Candoia: A Platform and an Ecosystem for Building and Deploying Versatile Mining Software Repositories Tools, Technical Report TR15-13, Computer Science, Iowa State University [TR].
  • Eric Lin, Ganesha Upadhyaya, Sean L. Mooney, and Hridesh Rajan, Duck Futures: A Generative Approach to Transparent Futures, TR15-05, Computer Science, Iowa State University, June 2015 [pdf]
  • Ganesha Upadhyaya, Tyler Sondag, and Hridesh Rajan, ParaSCAN: A Static Profiler to Help Parallelization, TR14- 06, Computer Science, Iowa State University, June 2014 [pdf]
  • Hridesh Rajan, Steven M. Kautz, Eric Lin, Sean L. Mooney, Yuheng Long, and Ganesha Upadhayaya, Capsule- oriented Programming in the Panini Language, TR14-08, Computer Science, Iowa State University, Aug 2014 [pdf]
  • Ganesha Upadhyaya, Abstraction and performance, together at last; Auto-tuning message-passing concurrency on the java virtual machine, MS Thesis, CS, Iowa State University, 2015 [MS Thesis], [pdf].

Presentations

  • Effectively Mapping Linguistic Abstractions for Message-passing Concurrency to Threads on the Java Virtual Machine OOPSLA 2015, Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications [Slides], [Presentation video]
  • An Automatic Actors to Threads Mapping Technique for JVM-based Actor Frameworks at the 4th International Workshop on Programming based on Actors, Agents, and Decentralized Control (AGERE'14) [slides]

Synergistic activities

External reviewer

  • 38th International Conference on Software Engineering (ICSE), 2016
  • 15th International Conference on Modularity, 2016
  • 14th International Conference on Generative Programming: Concepts & Experience (GPCE), 2015
  • ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2013

Resume

Resume-Ganesha Upadhyaya