Wolfram Research is the world's leading developer of computational software
for science and technology. Led by Mathematica, its flagship product, the
company's software is relied on today by several million enthusiastic users
around the world and has been the recipient of many industry awards. Stephen
Wolfram, who continues to lead the company today, founded Wolfram Research
in 1987. The company is headquartered in the United States, with offices in
Europe and Japan.
WinHPC.org: Mathematica is normally associated with computational mathematics,
scientific research, and academia. On the other hand grid computing is more
focused toward practical, commercial enterprises. What brought you to
develop gridMathematica, Wolfram Research's entry into grid and cluster
computing?
Porter: We initially developed gridMathematica in 2002 in response to interest from
our existing customers, primarily in the government sector. Since then,
cluster and grid technology has become mainstream. As businesses have come
to use clusters and grids to improve efficiencies in their organization,
we've found gridMathematica has broad appeal even to those who have never
heard of Mathematica.
The first experience many people have with Mathematica is as part of a
calculus or other advanced mathematics course in college. Mathematica is a
good fit for academia, since it provides a powerful environment for
visualizing and understanding mathematical concepts. Mathematica also brings
those same capabilities to commercial industry in applications that span all
disciplines.
Mathematica is an incredibly capable system, but there are a number of
problems that cannot be reasonably solved on a desktop-type computer. This
is where gridMathematica comes in: taking the capability of Mathematica and
extending it to more compute-intensive problems that can be solved on a
cluster or grid.
The strengths of gridMathematica revolve around its ability, inherited from
Mathematica, to interact with technologies common in a business environment.
gridMathematica can work with information stored in an SQLServer or Access
database, access information in Excel or available through web services,
interoperate with information systems in .NET, and interface with legacy
applications. Because of this, gridMathematica gives you the ability to
implement innovative solutions within your existing Windows infrastructure.
WinHPC.org: Can you briefly describe gridMathematica for our readers who may not be
familiar with it?
Porter: Sure. gridMathematica consists of a collection of Mathematica kernels tied
together to form a coherent parallel technical computing and visualization
environment. gridMathematica allows you to build a parallel solution using
Mathematica as the foundation. The fact that it is built on Mathematica
makes gridMathematica a powerful, yet flexible system.
The glue technology is called the Parallel Computing Toolkit, and it is
built around the manager-worker parallel model. We chose the manager-worker
model for its simplicity both in terms of our development effort and in
terms of simplicity for the end user. As powerful as the MPI model is, it is
difficult to work with. With MPI you spend more time working on a more
complex solution. While the manager-worker model may not be as
computationally efficient in all cases, you get to your solution faster.
Even then, gridMathematica exposes the low-level data transfer layer and the
queuing system that form the basis of how gridMathematica works. So, you
could tinker around in the guts of the system if you want, implementing your
own parallel model. Most of the time, I suspect, people will use the
top-level functionality to achieve parallelism, specifically because of the
simplicity of the system.
WinHPC.org: What do you see as the major challenges in the use and deployment of grid
and cluster technology, and how does gridMathematica address those
challenges?
Porter: The challenges in grid computing are unique to that field. There are
challenges in infrastructure: deploying and maintaining both the hardware
and software stack, in addition to ensuring secure and continuous access.
Along the same lines, keeping utilization of the grid at a high level is
important since you don't want those resources to be idle. This is both a
systems administration challenge and a user challenge. On one side, the grid
has to be efficient at balancing its computational load, but at the same
time there must be a sufficient number of jobs to keep the grid busy.
As a computation environment, there's little that gridMathematica can do to
help manage the infrastructure. However, we can make sure that we integrate
well with the systems that are in place for deploying and maintaining
software, and we do just that. If you are using standardized system images
on the compute nodes you can install gridMathematica into the software stack
on that image and deploy. On the other hand, if you're using a custom
administration tool, the gridMathematica install is scriptable. So you can
configure the tool to fire off the install and forget about it. Similarly,
we are able to integrate with a number of grid management systems, such as
the Microsoft Compute Cluster Server scheduler, so that gridMathematica is
part of the resource management and not an extra burden.
Accessibility is another major challenge for grid environments. People need
to be able to run jobs on the grid and obtain the results of those jobs
without jumping through a lot of hoops. Perhaps more importantly, people
need to know that the grid resource is out there and understand how to use
it. I believe this issue will become more significant with time. As grids
become more common in the corporate environment, fewer of those who would
potentially be able to use the resources provided by the grid will be
programmers. Instead, they'll be business analysts, or they'll be in
marketing, or they'll be in some other business function. The real challenge
is to make the grid useful for these folks, as well as the programmers. This
is an issue for the HPC community as well, since scientists and engineers
would rather spend their time gaining insight to the problem at hand instead
of programming their simulations to run on a grid. gridMathematica addresses
the issue of accessibility directly. The ease of development in
gridMathematica that I mentioned before lowers the barrier to effectively
using grid resources and provides a conduit for nonprogrammers to realize
the gains in performance and capacity of grid technology.
WinHPC.org: Earlier you alluded to the use of gridMathematica in commercial
industries. Can you be more specific as to who uses gridMathematica and what
they use it for?
Porter: As I mentioned before, gridMathematica has been applied to nearly all
industries: aerospace, astronomy, bioinformatics, chemistry, finance,
manufacturing, pharmaceuticals, and so forth. The application of
gridMathematica within those industries is as varied as the industries
themselves: cryptography, data analysis, statistical modeling, simulation,
prototyping, and visualization. These are just some examples, and for the
most part you may find gridMathematica used for any one of these tasks in
any of the industries.
We showed a demo at the US Intel Developer Forum, in San Francisco, that
simulates the distribution and diffusion of pollution in the atmosphere as
affected by wind and solar heating. This is a great example of
gridMathematica as an integrated parallel technical computing and
visualization environment, and shows how gridMathematica can be used in
environmental engineering. The evolution of the solution, the concentration
of carbon monoxide in the atmosphere, is shown in real time as the next step
of the solution is found. This is in contrast to the traditional model where
information flows through different programs, potentially at each stage:
preprocessing, computation, postprocessing, and visualization. With
gridMathematica you are able to see the intermediate results as they are
found, rather than having to wait until the whole process is finished. That
is a significant advantage for the analyst, particularly in simulations like
this demo where a particular pollutant may only exist in significant
concentrations for a short period of time, but acts as a catalyst for
further reactions.
WinHPC.org: Wolfram Research recently released the Cluster Integration Package for
gridMathematica. This package provides direct integration between
gridMathematica and the Microsoft Windows Compute Cluster Server 2003
scheduler. Compute Cluster Server is the new kid on the block, and as such
is unproven in the marketplace. Why go with CCS rather than a more
established HPC system?
Porter: Windows comprises a large part of our overall customer base, and a
surprisingly large percentage of our gridMathematica customers, as well.
Prior to Compute Cluster Server, Windows did not provide native facilities
for remote interoperability to the degree needed by gridMathematica.
Configuring gridMathematica on a cluster of Windows XP systems is
complicated and requires the use of 3rd party tools, none of which provide
the coherent experience to which Windows users are accustomed. Compute
Cluster Server completely reverses this and with the Cluster Integration
Package, configuring gridMathematica to run on CCS is quite simple. Compute
Cluster Server provides our customers with an environment that minimizes the
amount of work necessary to maintain a gridMathematica installation.
Earlier I talked about gridMathematica as an opportunity to introduce
Mathematica to new markets, and Compute Cluster Server fits with this idea
quite well. Obviously, the traditional HPC world is wary of CCS, and I
suspect it will take a while for Compute Cluster Server to make significant
inroads there. However, there are a large number of people who are
unfamiliar with Linux and Unix, and there are a number of organizations that
have no one experienced in managing a cluster. For these folks, Compute
Cluster Server provides a familiar environment for accessing and managing a
cluster. These are the same folks who have likely not heard of Mathematica
or have not thought about using Mathematica as anything other than a fancy
calculator, but who could benefit tremendously from its capabilities.
WinHPC.org: How well does gridMathematica on Windows Compute Cluster Server scale?
Porter: The answer to this question is, "It depends." It depends on the problem.
That is, whether the nature of the problem is such that it can be solved
using embarrassingly parallel techniques or whether the data dependencies
within the problem require more interaction. It also depends on the
underlying hardware, particularly the interconnect. With Infiniband you'll
see better performance than with gigabit Ethernet. gridMathematica is really
a parallel computation environment, so it scales with the problem and with
the hardware.
That said, we've tested gridMathematica on up to 96 processors and we were
running on 48 processors at a live demo at Supercomputing 05, in Seattle. We've
seen efficiencies above 90% on nontrivial problems. So, gridMathematica is
able to scale with the best of them.
WinHPC.org: Take a look in your crystal ball. In what direction is the future of grid
and cluster computing headed?
Porter: There are really two aspects to the grid computing space, HPC and business.
HPC is where these technologies were developed, and there is a high level of
comfort and familiarity with grids. In contrast, the business world is just
starting to understand how grid technologies will enable their organizations
to do new things and respond more quickly to the market. The future of grid
computing, then, is sculpted by these two factors. Many people today are
talking about how grid computing is unifying HPC and traditional business
systems. I don't disagree with that notion, but I do think that future
development will cause grid computing to diverge to meet the differing needs
of HPC and business.
The HPC world will continue to push the envelope and widen the scope of what
one is capable of doing with grid systems. The problem space on the outer
boundary of HPC has grown to the point that it exceeds the capabilities of a
single site. So, much of the research is focused on tightly integrating
geographically distributed resources, creating a kind of global
supercomputer where a single simulation would have pieces running on
computers all over the world. This requires the development of standard
protocols for things like data exchange, authentication and security,
resource advertisement and allocation, scheduling, and failure recovery. HPC
is focused on infrastructure, and you can already see these things starting
to come together using technologies like web services.
The business world is focused on applications. As a result, the needs of
business are primarily centered within a single site, migrating their
existing business systems from mainframes and isolated servers to a more
flexible grid infrastructure. While companies are becoming more global, the
problem space does not cross the computational boundaries of the site. So
the business world uses grid technologies as a way to provide manageable,
shared computing resources for the whole organization. One site within a
global company might do engineering computations, while another does
business simulations. Or, maybe both will be working on engineering, but
each a separate project. Businesses will use grids as a way to improve
efficiencies within their organization.
WinHPC.org: Any final thoughts?
Porter: We will be at Supercomputing 2006 in Tampa, showing gridMathematica running
on Compute Cluster Server. I'd like to invite any of your readers to drop by
the Wolfram Research booth and say hello. Thank you for the opportunity to
discuss gridMathematica and Windows Compute Cluster Server 2003.
http://www.wolfram.com