Monday, July 25, 2005

10Gb/Gflop/sec

"Another way is to have the processor and memory on the same chip. Even if they can co-exist the memory size relative to processor speed becomes a problem. For every one Gflop/s we need 10 Gbits of memory to maintain a balanced efficient system. For a 100 Gflop/s CPU, we will need one trillion bits of memory. One can see that for high performance the processor and memory idea is not feasible. This of course is possible for small amounts of memory, but not for enough memory to produce a balanced system."

http://www.taborcommunications.com/hpcwire/hpcwireWWW/04/0618/107850.html


Read more!

Research Idea

Data visualization. Correlate heart flow to data communication between processes. Can we generalize this? Correlate a CFD problem to data communication. Or LU factorization, or Eigen value problem. Is there a pattern in the resulting visual?


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Researchers Hope for High-Performance Hearts................7.7K



Suppose you had a debilitating illness for which there was a new
experimental drug that offered the promise of a cure but was also
known to pose risks. Do you take the chance and consent to treatment?
Or do you go with a safer but less effective alternative?

Patients in the future might not have to face such a choice. Using a
programming language developed to take full advantage of
high-performance computing and parallel processing, a collaboration of
researchers that includes Katherine Yelick of Berkeley Lab's
Computational Research Division (CRD) has developed software that
simulates the flow of blood through a human heart. This represents a
first step in what Yelick foresees as 3-D digital models of an
individual patient's cardiovascular system and internal organs.

"The long-term goal is to have a complete enough model of a human body
that it could be specialized to a particular individual," says Yelick,
who leads the Future Technologies Group within CRD's High Performance
Computing Research Department and is also a UC Berkeley professor of
computer sciences. "In the shorter term, simulations of individual
organs will help doctors understand the physiology of how the body
works."

Poets may sing of a simple heartbeat, but there's nothing at all
simple about the beating of a human heart, not when it comes to the
intricate, swirling, pulsating motions of blood flow. Simulating the
fluid dynamics behind blood flow through the heart, particularly
around the valves which control flow, requires the brute computational
power of the most advanced supercomputers.

However, first you need a programming language that enables model
designers to take full advantage of high-performance supercomputers
and parallel processing.

Just as development of the programming language JAVA made it much
easier for application software to use the strengths of the World Wide
Web, so did the development of a JAVA dialect called "Titanium" make
it possible to produce highly detailed simulations of fluid dynamics
in biological systems. Titanium was created by the team of Yelick,
Berkeley Lab computer scientist Phil Collela, and UC computer
scientists Paul Hilfinger and Susan Graham.

"Charles Peskin and David McQueen of the Courant Institute of
Mathematical Sciences at New York University had created a model of
the heart, based on a technique they call the Immersed Boundary
Method, that was used to simulate blood flow in the heart, the
clotting process in arteries, and other biological systems," says
Yelick. "But their software was developed for a previous generation of
supercomputers and could not scale to large machines."

She and her team worked with the code from Peskin and McQueen, which
was written in the Fortran computer programming language, and
redesigned it in Titanium for use on the parallel architectures of
today's high-performance computers.

"Our first goal was to get the heart code developed by Peskin and
McQueen running at higher resolution using parallel processing, which
meant figuring out such things as how to divide the heart into pieces
and coordinate them during the simulation of a heartbeat," Yelick
says. "The second goal was to make a generic immersed boundary code
that will run on distributed parallel machines available to the
biological sciences. There are a lot of great opportunities for using
high-performance parallel processing to accurately simulate important
biological flows."

What makes fluid dynamics in the human heart so difficult to simulate
is that the blood interacts with flexible, elastic boundaries, the
heart's muscle fibers, as it flows. This creates a coupled system in
which the elastic boundaries move the fluid at the same time as the
fluid pushes back against the boundaries. As a result, researchers
must simultaneously solve problems in both fluid mechanics and
elasticity. Titanium has features that help programmers express the
kinds of complex distributed-data structures that arise in fluid
dynamics simulations — especially those involving adaptivity or
irregular boundaries.

"If you're just trying to make a heart beat, you can get by with a
simpler model," Yelick said. "But to understand things like how the
muscle fibers contract and what happens in the vortices behind the
heart valves, we need much higher resolution for more accurate and
realistic simulations."

In addition to simulating the flow of blood through the heart,
software developed by Ed Givelberg, a research scientist who worked in
Yelick's group, can also simulate the effects of sound waves in the
inner ear and can be extended to the simulation of blood clotting,
bacterial motion, and other biological systems.

The model of the heart was originally tested on the IBM SP machines at
Berkeley Lab's National Energy Research Scientific Computing Center
(NERSC) and at UC San Diego's Supercomputing Center. However, the
software is designed to run on any type of parallel machine.

Ultimately, Yelick would like to see models of other organs linked to
the model of the heart and used in conjunction with medical images and
patient histories to create a customized "avatar," or digital version
of an individual. Physicians could then test drugs for potential side
effects on a patient's avatar, as well as perform virtual surgical
procedures or test prosthetic devices. Diagnostics and potential
therapies for strokes, heart attacks, or other catastrophic conditions
could also be run on a patient's medical avatar. A programming
language like Titanium improves the chances for such virtual
simulations becoming a reality.

"One of the primary motivations for developing Titanium was to enable
easier programming on today's parallel architectures," Yelick said.
"By providing high level array abstractions and avoiding tedious
message-passing code, Titanium allows application researchers to focus
on their science and how to best model it."

While being a part of an interdisciplinary research collaboration that
might someday result in lifesaving technologies is rewarding, Yelick
says it is also very challenging because of the language barriers.

"We have to think outside our own discipline and speak each other's
languages to communicate and solve problems," she says. "But it does
feel good to know that what you're working on might someday save
lives."


Read more!