Archive for the 'HPC' Category

The next frontier in IaaS: Non-commodity and vertical scaling

Anton ASIC for molecular dynamics

Anton ASIC for molecular dynamics

Something I’ve been thinking about came up several times at BioIT World last week. It was mentioned during the cloud computing workshop and even Deepak Singh’s keynote. It’s the notion of service oriented architectures that offer boutique or non-commodity infrastructure as a service. Clearly the reason that Amazon Web Services was able to shake things up in this space was due to economies of scale. This is a core tenet of cloud computing. Companies like Google and Amazon can leverage their massive operational scale and purchasing power in order to democratize access to compute and storage.

The buzz around the cloud and high-performance computing is almost always in reference to scale-out or horizontal scaling architectures. While I am known to have drunk the kool-aid, I also take issue with the idea that this is the only way to scale applications. Now that the cloud is becoming less hip and anyone with knowledge of a scripting language is able to crunch terabytes of data on thousands of CPU’s, I’m left wondering where the next challenge is.

Big clusters and big storage are essentially solved problems. And that’s why it’s reached a level of abstraction that allows me to manage it all from my laptop and a web browser. A lot of the best practices that arose in the cloud era are finding their way back into the HPC space. The cloud has accelerated efforts in automation, data-intensive compute frameworks, asynchronous programming, and has blurred the line between the developer and the sysadmin. That’s what makes the cloud awesome.

For scientific computing in particular it has finally provided agile and experimental IT to match the experimental essence of science. A bioinformatician or computational biologist too often handles responsibility in the wet lab as well as the machine room. Research should not have to wait 4 to 6 months to acquire new hardware or spend 5 days configuring a relational database. This stifles scientific progress and takes the researcher away from doing what she does best.

What do we do when the problem is special and the resource requirements aren’t consumer grade compute and storage. Are we back to the drawing board? How can we take all the awesomeness of the cloud and make it work in those scenarios? I’m talking about IaaS offerings that include ASICs, GPGPUs, Infiniband, NUMAlink, and the stuff that gives you real performance and not just throughput. It doesn’t have to stop with IT infrastructure. What if cloud sequencing had an API? What if anyone could have easy remote access to a mass spec or a synchrotron?

This is technology we have in hand today. You can partner with big universities to use their high end lab instruments. You can even apply for time on special supercomputers like the Anton from DESRES. I would like to see these types of resources open up in the same way that Amazon enabled anyone with a credit card to spin up a big IT infrastructure. This is critical for small companies to compete and innovate. It would also create new business models and platforms built on top of these services. The cloud gives us some of this today, but what will it look like in the future?

Further reading:

Antibody Docking on the Amazon Cloud

Today an article I wrote for Bio-IT World was published describing Antibody docking experiments that are running on Amazon EC2. Since my final edits didn’t make the deadline I wanted to post the entire article here with some inline links.

It was 18 months ago in this column that Mike Cariaso proclaimed, “Buying CPUs by the hour is back” in reference to our work with Amazon’s Elastic Compute Cloud (EC2). Back then, we were perhaps a bit far ahead of the hype vs. performance curve of cloud computing. A handful of forward-thinking companies were finding ways to scale out web services. Few research groups were putting EC2 instances to work for real number crunching in the life sciences. In the last two years, utility computing has begun to make an impact on real world problems (and budgets) in many industries. For researchers starved for computing power, the flexibility of the pay-as-you-go access model is compelling. The Amazon EC2 process makes the grant process used by national Supercomputing centers look arcane and downright stifling. Innovative and ‘bursty‘ research requires dynamic access to a large pool of CPU and storage. Computational drug design is a great place to begin to clear the air about the reality of this emerging technology.

Accelerating the creation of novel therapeutics is priority one for the research side of the pharmaceutical industry. Much time is spent optimizing the later phases of clinical trials in many pipelines. However, IT and infrastructure decisions made much earlier in the process can have a profound impact on the momentum and direction of the entire endeavor. For protein engineers at Pfizer’s Bioinnovation and Biotherapeutics Center, the challenging task of Antibody docking presents computational roadblocks. All-atom refinement is the major high performance computing challenge in this area.

Respectable models of a protein’s three-dimensional structure can usually be generated on a single workstation in a matter hours. After building multiple models, a refinement step typically produces the most accurate models. Atomic detail is necessary to validate whether newly modeled antibodies will bind their target epitopes and to get a clear picture of the protein-protein interactions and binding interfaces of these immunogenic molecules.

1gla

One of the most successful frameworks for studying protein structures at this scale is Rosetta++, developed by David Baker at the University of Washington. Baker describes Rosetta as “a unified kinematic and energetic framework… (that) allows a wide-range of molecular modeling problems … to be readily investigated.” Refinement of antibody docking involves small local perturbations around the binding site followed by evaluation with Rosetta’s energy function. It’s an iterative process that requires a massive amount of computing based on a small amount of input data. The mix of computational complexity with a pleasantly parallel nature makes the task suitable for both high-end supercomputers and Internet-scale grids.

BBC Two

When Giles Day and the informatics team at Pfizer BBC designed its antibody-modeling pipeline using Rosetta, it soon realized it had a serious momentum killer. Each antibody model took 2¬–3 months using the 200-node cluster. With dozens of new antibodies to model, the project was at a standstill until they could get enough compute capacity to do the appropriate sampling. Furthermore, the pipeline was invoked with unpredictable frequency since it was dependent upon discovery in other departments. What it needed was a scale-out architecture to support “surge capacity” in docking calculations. This surge could happen frequently or not at all, making capacity planning extremely difficult.

Traditionally options were limited to expanding in-house resources by adding more nodes to the cluster or reducing the sampling. 4amd The only true option was to throw more CPUs at the problem — a doubled capacity could potentially halve a two-month calculation – but would necessitate acquisition, deployment, and operational costs. After evaluating those costs, they contracted the BioTeam to provide them with a cloud based solution. The result was a scalable architecture custom fit to their workloads and built entirely on Amazon Web Services (AWS). As was clearly evidenced at this year’s Bio-IT World Expo, the Cloud is mainstream today. Moreover, the AWS team is years ahead of the competition. AWS is unveiling new features and API improvements almost every month. The AWS stack is fast becoming a first choice by BioTeam for cost-effective virtual infrastructure and high-performance computing on-demand.

The architecture employed for docking at Pfizer makes use of the nearly the entire suite of services offered by Amazon. A huge array of Rosetta workers can be spun up on EC2 by a single protein engineer and managed through a web browser. As Chris Dagdigian pointed out in his recent keynote at Bio-IT World: While the cloud is quite hyped, this isn’t rocket science. The Simple Storage Service (S3) stores inputs and outputs, SimpleDB tracks job meta-data, and the Simple Queue Service glues it all together with message passing. What Amazon did right in 2007 was elastic compute and storage. What they do better in 2009 is to provide developers everywhere with a complete stack for building highly efficient and scalable systems without a single visit to a machine room. The workloads at Pfizer that previously took months are now done overnight and the research staff can focus on results without pushing their projects on the back shelf.

Hybrid Programming for Shared-Memory and Clustered SMP Systems

There’s an upcoming workshop at the PSC September 8 – 11, 2008

This workshop will present programming models and techniques for writing efficient parallel code on contemporary and future supercomputers with extensive shared memory, or hierarchical architectures with smaller shared-memory components. Two important examples of systems to which these techniques apply are the SGI Altix and networked clusters of multicore processors. Expert instructors from PSC and SGI will review MPI, OpenMP, and hardware architecture prior to launching into detailed treatments of programming for hybrid parallelism, performance analysis, and optimization. This is a “bring your own code” workshop. Participants are encouraged to bring an application to focus on during the hands-on sessions to maximize the workshop’s effectiveness. Examples will be provided for participants who cannot bring a research code. Experienced PSC computational scientists will provide support regarding the topics covered, including hybrid algorithms and implementation strategies and performance engineering.

More details

High-performance data appliances (Netezza)

This afternoon I sat through a presentation from a few guys at Netezza. They were here to discuss their system for high-performance data analytics. What they’ve effectively done is build a large database machine with some special hardware to accelerate database queries via parallel processing nodes. These are some notes I jotted down:

Architecture:

  • SMP Host
  • 100+ specialized processing units per cabinet (they named them SPU’s for “snippet processing units”)
  • SPU’s have their own PPC CPU, commodity disk, memory, and an FPGA
  • GigE networks between SPU’s
  • SMP Host partitions queries and broker activity to the processing nodes
  • Hardware fault-tolert (SPU’s can be hotswapped)

I’ll admit my skepticism tends to mount against any speaker that spends a lot of time at the outset with a marketing pitch when the audience is full of scientists. Do scientists need to be reminded that data sizes are growing? Or that enterprise X, Y, and Z are already using your product? Just show me how at works.

I did a quick search across my feeds to see if anyone has written about Netezza and (not surprisingly there is a post over at Computing at Scale. It appears there are similar efforts from Teradata, Greenplum, and DATAllegro in this space.  I can imagine how a systems like Netezza’s might complement more traditional supercomputing.  There’s certainly a big effort to commercialize the “new era of HPC” but the technologies that come out of it are business-driven and not science-driven.

What would you do with a million CPU’s?

ps3folding

There’s a new podcast on Futures in Biotech with Dr. Pande from Folding@Home. Macresearch summarized it well:

  • How a bunch of Sony PS3s have become the largest component of the world’s fastest computer
  • The challenges of distributed computing, and in particular how data storage and CPU usage can actually complement each other
  • After the hype in the 80s around computational modeling of protein structure, the computational power available today could finally make that hype a reality
  • How to take a non-parallel task and transform it into a series of computational chunks (a.k.a. how to make a baby in 1 day with 270 women)
  • How modeling of protein structure will be able to get more into the dynamics of protein conformational changes
  • What would you do if you had 250,000 CPUs?
  • I really like the final point, “What would you do with 250,000 CPU’s”, because it’s an important question. Petascale computing has arrived but most applications aren’t ready to scale to thousands or millions of cores. Folding@Home is as a distributed computing project as it is biomedical. What they’ve been able to do is treat simulations as data and use bayesian data mining techniques to put together the whole picture with suprising efficiency. A clever workaround for Folding@Home’s “supercomputer”, which is severely limited by network latencies and individual agents with slow hardware compared to ‘real’ supercomputers. Finally he reports that PS3’s and GPU’s are achieving 20-30x acceleration. Exciting stuff!

    image taken from Flikr, CC licence

    Most Innovative Use of HPC in Life Sciences

    The PSC and NRBSC have made the news again, this time in HPCwire. They’ve posted the Readers and Editors Choice awards for SC07 and the WiiMD demo earned us “Most Innovative Use of HPC in Life Sciences”.

    wiimd_bowling

    Further Reading:
    WiiMD: Bowling on Big Ben
    Engadget: wiimote used in buckyball bowling and other educational simulations

    WiiMD: Bowling on Big Ben

    SC07

    SC07 is in full swing in Reno. I promised some details about the PSC booth, more specifically the Wiimote controlled Molecular Dynamics demo. Some credit for this idea should go to Adam Marko, who is now a graduate student at UCSF joining the lab of Andrei Sali.

    The real selling point of the Nintendo Wii video game console has been the Wiimote. For those who haven’t experienced one, the Wii Remote is very different from a typical video game controller. It has a built in accelerometer, motion sensing, and optical sensing. It communicates over bluetooth, and best of all it only costs around $50 US. These features work to enrich video games through unique human-computer interaction. The sports games that come bundled with the Wii demonstrate how previously mundane gameplay such as bowling, baseball, and tennis can be a blast with clever interaction design.

    In the context of biotech, haptic interfaces could really have a big impact in how biologists, life scientists, and medical profesionals interact with computers and devices. The computer geek in me wants to believe that a keyboard and mouse is the one true way to use a computer but the success of video games consoles, Tablet PC’s, and iPhones are changing the face of computing. Imagine biosimulations which are no longer just scripts, plots, and post-process rendering but rather augmented reality. Where a scientist can use virtual instruments and interact with their simulations in real time.

    Before I get ahead of myself, let me explain the demonstration you can see at the PSC booth if you’re attending SC07. It is quite simple to use a Wiimote to replace your mouse on a standard PC. Several months ago we played around with Wiimotes on our workstations, manipulating protein structures in VMD and CHIMERA which are both excellent molecular graphics and modeling programs. In this case the Wiimote just acts as a mouse, and doesn’t really offer much advantage, especially for someone who uses VMD with a mouse and keyboard. Pretty cool, but not very practical for me personally. So the Wii Remotes were left in the drawer until discussion about demos for SC07 arose. That’s when some other PSC heads got involved and the idea blossomed.

    VMD is a cool program to use with a Wiimote, but a moving a single protein structure isn’t very interesting. Let’s do a NAMD simulation instead. Better yet, let’s use IMD to have an interactive NAMD simulation. And while we’re at it, let’s run it live on Big Ben (PSC’s 4,000+ processor Cray XT3). After all, Supercomputing is our middlename. The “WiiMD” demo is live at SC07 thanks to key efforts by Nathan Stone, Shawn Brown, and student Jordan Soyke. Unfortunately I could not be there to see the final result, but some work was done with PDIO, a middleware that routes data straight from the nodes of the XT3 to a remote location in real-time. There was also a rewrite of the Wiimote input driver, which Jordan talks about briefly in his blog.

    Stop by the PSC booth if you get a chance. I hope to have pictures or video of the demo up sometime soon.

    PSC Live! at SC07
    WiiMD, interactive molecular dynamics with a wiimote?

    And my two favorite blogs have noticed!
    scalability.org – Coolest demo I saw today
    BBGM – Finally found a reason to buy a Nintendo Wii

    Supercomputing 2007

    It’s that time of year. SC07 begins in Reno next week, and everyone around here is getting prepared. Unfortunately this is the second year in a row that I can’t attend Supercomputing. Last year I was at CASP and this year we are doing a 2-day structural genomics workshop at UTSA. Apparently I’m not the only one with Supercomputing blues. I will miss the chance to talk with vendors and work the PSC booth, but I at least have a poster and some labmates going to Reno.

    While much of the conference is focused on high performance network technologies, there’s some great life science talks worth attending. There’s also a session that grabbed my attention,

    High Performance Computing on GPUs with CUDA

    where NAMD and NVidia developers will demonstrate MD simulations on graphics processors. Stay tuned for some juicy details about a demo from our booth.