Best Practices for running J2EE applications on machine with 192 CPUs?

C

Cindi Jenkins

I have seen others comment on writing applications that run on two or
four CPU machines but wanted to know if anyone has uncovered "best
practices" for developing Java applications that support 192 CPUs?
 
A

Ann

Cindi Jenkins said:
I have seen others comment on writing applications that run on two or
four CPU machines but wanted to know if anyone has uncovered "best
practices" for developing Java applications that support 192 CPUs?

What does it mean to have 192 cpus? If you have a cluster
of cpus that share memory and disk is it included in your
definition?
 
C

Cindi Jenkins

What does it mean to have 192 cpus? If you have a cluster
of cpus that share memory and disk is it included in your
definition?

My question was about having 192 CPUs on a single box...
 
M

Michael Borgwardt

Cindi said:
I have seen others comment on writing applications that run on two or
four CPU machines but wanted to know if anyone has uncovered "best
practices" for developing Java applications that support 192 CPUs?

Not really all that different from having 2 or 4 - exploit the parallelism
in the application by spreading the work over different threads. This
depends more on the application than on the number of available CPUs,
the only difference is that it rarely makes sense to have much more
working threads than CPUs. Be careful about bottlenecks like disk IO.
Choice and tuning of the JVM is also a much bigger factor than on
single-CPU systems. You definitely need a JVM that supports parallel
garbage collection (i.e. have more than one GC thread).
 
C

Cindi

Michael said:
Not really all that different from having 2 or 4 - exploit the parallelism
in the application by spreading the work over different threads. This
depends more on the application than on the number of available CPUs,
the only difference is that it rarely makes sense to have much more
working threads than CPUs. Be careful about bottlenecks like disk IO.
Choice and tuning of the JVM is also a much bigger factor than on
single-CPU systems. You definitely need a JVM that supports parallel
garbage collection (i.e. have more than one GC thread).

I have access to a JVM that supports parallel garbage collection.
Really looking for software engineering tips maybe explained in a
patterns based way.
 
M

Michael Borgwardt

Cindi said:
I have access to a JVM that supports parallel garbage collection.
Really looking for software engineering tips maybe explained in a
patterns based way.

As I said: it depends entirely on your application how (if at all) it can
be effectively parallelized. It's all about avoiding and/or reducing
bottlenecks and dependencies. I don't think there any generally applicable
patterns that help with this.
 
F

frankgerlach22

192 CPUs are *really* a lot... I suggest to start more than one VM on
that super-machine.
This will avoid scalability issues. At least historic experience
doesn't suggest to use
a single VM for more than say 4 CPUs. Maybe you have this excellent VM
that
scales on your 192 CPUs, but I doubt this....
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top