Java and Parallelism Computing: An Interview with Java Developer
and Researcher Dr. Gilda Garretón

By Yolande Poirier  
Published June 2011
Photo of Stephen Chin
Dr. Gilda Garretón

Dr. Gilda Garretón is a Principal Engineer in the VLSI Research Group at Oracle Laboratories.  She has both Java and parallelism computing expertise. As a researcher, she focuses primarily on algorithms for the very large-scale integration (VLSI) of computer-aided design (CAD). In this interview, she shares with us her insights into the Electric VSLI Design System Project at Oracle and trends in parallelism. 

She received her B.A. and Engineering degree from the Catholic University of Chile (PUC) and her Ph.D. from the Swiss Institute of Technology in Zurich (ETHZ). She joined Sun Laboratories in 2004 and joined Oracle in 2010. She previously worked at universities and in the financial industry in Chile and Switzerland. She also works on an open source project, the Electric VLSI Design System.

She is passionate about technology and co-founded the community Latinas in Computing (LiC) in 2006 to inspire Latin American women to join the engineering field.

Oracle Technology Network: What is the Electric VLSI Design System project?

Garretón: Electric VLSI Design System is an open source VLSI CAD application used as a research platform for new CAD algorithms as well as the research flow for hardware test chips. Worldwide, Electric is used in academia and small industry.

The CAD applications are time-consuming tools applied to very large data sets (circuit designs). With those important characteristics, plus the fact that Electric is fully implemented in Java, this framework has been the perfect environment to apply cutting edge parallel techniques on multicore processors in Java. Electric can be used for TLP (thread-level parallelism) and DLP (data-level parallelism) research. In DLP, research on thread-safe databases for CAD environments has already been done. In TLP, new parallel engines have been tested for CAD tools, such as P+R (Placement and Routing), DRC (Design Rule Checker), and ERC (Electric Rules Checker) tools.  

Oracle Technology Network: What is the role of Java and its advantages for the work you are doing?

Garretón: Java has been fundamental for Electric as an efficiency-level language. Since 2004, Electric has been a Java framework (prior to that, it was implemented in C), and the language has allowed us to explore new algorithms as we take full advantage of the packages available in Java.

"Because the VLSI field is very specialized, people tend to assume that algorithms developed in other fields might not be well suited or cannot be applied here."

Dr. Gilda Garretón
Java Developer

Java has also opened doors for collaboration with other Java groups as well as people in academia. Because Java is taught in CS classes, it offers access to interesting research areas in academia and talented students for possible recruiting opportunities. We are currently collaborating with Dr. Victor Pankratius from the Karlsruhe Institute of Technology (KIT) in Germany, where Electric has been used in his multicore software lab as a study case.

Since January 2011, Electric has been available at and, therefore, we expect more collaborations in all areas covered by CAD tools. As never before, Java is making our research available to other communities.

Oracle Technology Network: You are working in a very specialized field. What are the main misconceptions and knowledge gaps about the field?

Garretón: Because the VLSI field is very specialized, people tend to assume that algorithms developed in other fields might not be well suited or cannot be applied here. With the introduction of parallelism in Electric, we are debunking that misconception, since the TLP and DLP initiatives have allowed us to look for alternative techniques to standard approaches.

For new software engineers in this field, what might take some time is to abstract the relevant Electric components to consider for a particular CAD tool, but once the abstraction is done, the development process shouldn't be harder than in any other specialized field in science. There are certainly computer science topics, such as graph theory, that are more relevant than others in VLSI.

Oracle Technology Network: Why is most of the existing software not taking advantage of multithread capability, which has been available in chips for some time?

"With the addition of the concurrent package in Java SE 6 and the Fork/Join feature in Java SE 7, developers have a chance to rely more on existing frameworks and dedicate more time to the essence of their parallel algorithms."
Dr. Gilda Garretón
Java Developer

Garretón: Parallel programming is hard and complex, especially when multicore specifications (number of threads, cores, last level of cache) must be taken into account. Moreover, new parallel hardware architectures are constantly being released, which makes it hard to concentrate only on the software side of the parallel task.

Parallel programming is not just the action of paralleling sequential programs by splitting tasks into multiple tasks that run in parallel. Unless the sequential programs are trivially parallel by definition, the application might need to be rewritten to consider concurrent constraints and data dependencies that were not exposed in the sequential version.

For developers, there has been a learning curve with the new parallel patterns and techniques available since the parallel revolution started. On top of that, you have to consider the features that an efficient language such as Java offers (or doesn't offer, for that matter). With the addition of the concurrent package in Java Platform, Standard Edition (Java SE) 6 and the Fork/Join feature in Java SE 7, developers have a chance to rely more on existing frameworks and dedicate more time to the essence of their parallel algorithms.

Since June of 2010, we have been working on a new lightweight parallel infrastructure to run VLSI tasks. That infrastructure provides an elegant framework based on the work-stealing parallel pattern to run on multicore machines. We recently tested the new Fork/Join framework in Java SE 7 (part of the concurrency and collections updates in JSR166y). Based on our preliminary benchmarks, this Java SE 7 framework is an excellent alternative to our own work-stealing implementation, so we are looking forward to the coming release.

For me, it is a matter of time. Sequential programming has been around for many decades and parallel programming just needs more time to mature.

Oracle Technology Network: Beside your daily job, you are part of a number of women organizations and you also co-funded the community Latinas in Computing (LiC). Could you tell us why you created this community?

Garretón: Since I joined the workforce, it has been very difficult to find Latina engineers in high-tech companies, and I have always wondered why there are so few women like me who enjoy technology and were raised in a Hispanic community. Certainly women are a minority in high tech, but Latinas can be considered a double minority due their heritage. Furthermore, it was my time to give back to the community because I was helped and guided when I was in grad school in Chile and Switzerland.

Thus, I co-founded the Latinas in Computing community in 2006 as a channel to promote leadership and professional development among Latinas in computer-related fields. Since then, we have been very successful in partnering with institutions and associations to help students and early-career Latinas. Through this community, I have met talented and inspiring Latinas who I wouldn't have known without a more formal organization.

Oracle Technology Network: What's up for you next?

Garretón: I'm the PhD Forum co-chair for Grace Hopper 2011 (#ghc11). The next Grace Hopper Celebration of Women in Computing is in November in Portland, Oregon, and is great way for women in computing to meet and network. I'd like to meet some Oracle Technology Network women there.

Oracle Technology Network: Thank you for your time!

Garretón: You're welcome.

See Also