Re: Distributive Computing
From: Darin Perusich <Darin.Perusich@cognigencorp.com>
Subject: Re: Distributive Computing
Date: Thu, 11 Oct 2001 12:16:13
+0000
Setting up a distributed environment
depends on your needs. Are you
going to be running lots of
NONMEM jobs all the time, or just a few now
and then? How much money can
you spend; it's always as
little as possible right? In
many cases, depending on the application,
using some big SMP machine will
be the best route. This is not the case
with NONMEM as it is single
threaded and cannot take advantage of
multiple cpu's; the NONMEM processes
just bounce from cpu to cpu and nothing is
gained. Would you rather buy
a 4 processor machine that will cost
$20,000+ or twenty $1000.00
machines?
Let's look at a few things that
need to be considered.
1. NONMEM run time - In many
cases, runs can go for hours, days, even
weeks. The underlying platform,
hardware, and OS must be reliable. If uptime is
a concern, the system should
be unix or linux.
2. Computing hardware - The
output of NONMEM runs differ between
processor architectures. Running
the same job on the x86(Intel) and
SPARC(Sun) platforms will give
hugely different results; therefore, all
the machines must be of the
same architecture.
3. Compilers - As with the hardware,
compiling NONMEM with different
compilers gives different results,
even between different versions of
the same compiler. There is
also licensing and pricing issues; GNU is free
and runs on every OS whereas
many other compilers cost upwards of
$1000/seat.
4. Licensing issues for NONMEM,
compilers, operating systems, etc. -
At a minimium, you'll have to
purchase enough licenses for NONMEM;
everything else can be done
with free tools.
5. Management - The less you
have to do the better, especially when you
have many machines. This goes
back to my first point; as an
administrator, I'd need this
to be as reliable as possible - having
machines "blue screen" for no
reason would not be acceptable to me
or users. Once a machine has
been deployed, it shouldn't need to be
touched. What about deploying
new systems; do you want to spend half a
day setting up the systems?
6. Job deployment - In such
an environment, this is one of the most
important things. How do i get
job 'abc-123' out to machines x, y, or z?
These are just a few things
to think about. The technical aspects and
difficulties run hand-in-hand
if you ask me. Someone looking to
implement a distributed network
of workstations should have a solid
grasp of networking, OS deployment,
and at least know how to use NONMEM.
--
Darin Perusich
Unix Systems Administrator
Cognigen Corp.
darinper@cognigencorp.com