[OT] Maximum performance on single processor ?

Marc Baaden baaden at smplinux.de
Fri Jun 20 13:43:27 EDT 2003


Hi again,

first thanks for all the helpful (though a bit discouraging) comments.

Firstly I should probably say that the factor of 1000 was what we'd ideally
need to be absolutely sure about the feasability. Maybe a factor 10-20 is
sufficient, maybe less.

Then, just out of pure curiosity, I'd still like to know what kind of
speedup by investment I could get for 20k$, let's say eg with respect to
the Athlon MB 2600 and which are currently the fastest processors in this
pricerange. I think someone "estimated" a factor of 4-5 for a Power4+, is
that right ?


landman at scalableinformatics.com said:
>>  As it does not appear that you have profiled the code (just a guess),

Half-right half-wrong guess. I have very rapidly profiled the code, just
confirming what I already guessed, that the bottleneck (> 80% of the time)
is the energy calculation subroutine, which calculates pairwise interactions
between atoms in the system.
There are indeed potential speedup factors in this code, like
- introduction of a neighbour list
- parallelization
.. or maybe the use of a specialized board (MD-GRAPE) for just these 
calculations.

Unfortunately I currently do lack the competence for parallelization or other
optimizations (probably trying to use SSE2 code would be even better), and
part of the more specialized methods seems like a complicated and particularly
short-lived business.


hahn at physics.mcmaster.ca said:
>> do you mean you want uniprocessors? you also need to characterize the
>> code MUCH better in order to  choose a machine.  for instance, power*
>> and itanium chips are  both very fast for some kinds of FP code, but
>> miserable for  integer-dominated code. 

We do use floating-point code.


hahn at physics.mcmaster.ca said:
>> have you actually done paper calculations to see whether the
>> performance you observe is sensible/expected?  ie, that you're not
>> triggering some  pathological behavior, even bugs?

Yes. The code is tested (> 10 years). But we know it has not been developed
with speed in mind (my contest for the understatement of the year)

>>  have you done the
>> high-resolution measuring to know whether your user inputs are
>> actually arriving without being blocked (for instance, on 20ms
>> scheduler ticks)? 

I have measured the calculation separately for now. Not even doing the user
part. But I do have an alternative program which already does run. So I know
that the method in itself is working. It is just the calculation module which
is in Fortran that is not yet adapted.


hahn at physics.mcmaster.ca said:
>>  an athlon MP 2600+)
>> a quite poor architecture for today; it was competitive a year ago.

oops, we must have been very ill advised then, because the machine is just a 
month old, and was the "top" model from our vendor. Or is there such a gap
between the US and the European market ?


mikee at mikee.ath.cx said:
>> Can the lisp technique of memoization help with your processing? 

Sorry, I don't know about this. What is it about ?


beowulf-request at scyld.com said:
>> Also, you should consider how the code is written - if you are
>> manipulating large arrays then the order of access, and the stride
>> length can make a big difference. You may be ranging all over a huge
>> array, pulling things in from memory(*) when a different algorithm/
>> different loop arrangement could keep things in cache.

So - if I interpret your and other people's statements right - depending on
the code, memory might be as important/critical as CPU power ?
Is there a way to check on what the code depends most ?

>> And Fortran,
>> being 'closer to the machine' can expose these things (I may be
>> wrong).

I don't see how (but I am not very experienced in this), any more direct ideas  ?

>> Have you looked at books like: "High Performance Computing"
>> http://www.oreilly.com/catalog/hpc2/

No, not yet. I will definitely need some guidance into how to best optimize the
code.


beowulf-request at scyld.com said:
>> (*) Sorry to teach my granny to suck eggs, but your machine isn't
>> going into swap I trust. 

I was about to say no it is not .. but I shall give it a serious check.


johnb at quadrics.com said:
>> If it looks like it would be a major project, you could get a summer
>> student to get on with doing it whilst the rest of the folks are doing
>> the other stuff.

It is (going to be) a major project. I would love having a summer student
doing the job, but I certainly haven't been able to get hold of someone
with the corresponding competences. (Also, in general the people I met who might
be competent, did not program in Fortran :)) )


rgb at phy.duke.edu said:
>> From this description, the ONLY thing you should be working on is
>> rewriting the code from scratch, doing a serious job of algorithm
>> analysis, optimization, vectorization, parallelization, and (IMHO) not
>> in fortran.

>> If it is graphics/visualization, consider studying things like
>> computer games, render farms, openGL, and various libraries and
>> hardware devices that can move the work required into custom
>> processors.  It could be that you are using Fortran to do various data
>> transformations in poorly written software that are now done extremely
>> rapidly in highly specialized hardware (not even on a "CPU" -- on an
>> offboard coprocessor with its own memory and instruction set).  Or
>> not.

These are all excellent remarks. But I do totally lack competence or knowledge
in these fields, and it seems extremely difficult/dangerous to me to make the
right choices in this context or to get an overview of what the best ways are
to optimize the code/algorithm.
Also I do not (yet) know the fortran code very well, as I am not developing/
maintaining it, and this does not really help in making those choices.


Well, if you are still with me, then thanks for reading through all this.
Cheers,

  Marc Baaden

-- 
 Dr. Marc Baaden  - Institut de Biologie Physico-Chimique, Paris
 mailto:baaden at smplinux.de      -      http://www.marc-baaden.de
 FAX: +49 697912 39550  -  Tel: +33 15841 5176 ou +33 609 843217


_______________________________________________
Beowulf mailing list, Beowulf at beowulf.org
To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf



More information about the Beowulf mailing list