Graeme's suggestion of a standard benchmarking dataset is a good one,
but I'm not so sure a 24 GB download size is going to get a lot of hits.
In fact, in some countries you have to pay for internet by the GB, and
it costs as much as mobile phone data! The large size also makes it hard
to separate two important aspects of data processing: the CPU vs the
disk. My goal was to isolate the CPU as much as possible, so I made a
"standard" image processing benchmark data set that is hyper-compressed:
11 MB download size. This is similar to the size of XDS package
itself. This hyper-compression is possible because it is a simulated
data set and that allows me to add noise on the client side. I also
expand the data by 10x by repeating the same 360 deg with symbolic
links. The footprint on local disk is only 2.3 GB, so it can usually
fit into the ramdisk on /dev/shm of most linux systems. The whole
hyper-decompression process is done automatically by my XDS and DIALS
benchmarking scripts, or you can just use this one script directly:
http://bl831.als.lbl.gov/~jamesh/benchmarks/get_test_data.com
It will automatically download and decompress the 3600-image test set on
most Linux and Mac systems.
Whether you use my benchmark or not, the important thing about any
benchmark is to run the exact same benchmark on as many machines as
possible, only then can you have enough "controls" to isolate what the
important features are.
As for GHz, everything "should" scale as GHz unless something else is
holding it back, like disk I/O or the network or a myriad of other
things. The most important factor for data processing, however, has
always been and still is the last-level CPU cache size. I think the
reason multi-socket machines are faster than single-chip multi-core
machines is because all the sockets are really just a way to get more
cache into the box.
Data processing is kind of a different animal from most other
crystallographic applications. Perhaps because of the pressure of
modern detectors many image processing programs have now embraced the
multi-CPU revolution. The problem, however, is that the more cores you
have in your processor the lower the GHz will be for a single core.
This seems to be a thermal management constraint. What that means is if
you get a processor with lots and lots of cores you can process data
really fast, but almost all the downstream steps like molecular
replacement and refinement will be slower. In fact, even different
phases of data processing benefit alternately from lots of cores vs lots
of GHz, so ideally you'd like to have two machines: one with a lot of
cores, and the other with a single really fast processor, and alternate
between these two machines using scripts.
But if you can only get one machine, I currently recommend the Xeon
W-2155 as a good general-purpose crystallography processor. It has 10
cores, so runs DIALS and other multi-CPU programs nicely up to this
puzzling 8-10 core ceiling, but still has the GHz to run single-threaded
programs nice and fast. It's not ridiculously expensive either.
My $1,440 worth,
-James Holton
MAD Scientist
On 12/2/2018 10:56 PM, graeme.win...@diamond.ac.uk wrote:
Re: publishing benchmarks - great idea - expand on what James described earlier.
Most programs are GHz dependent (for most “sensible” definitions of GHz (not
the mega-hyper-pipeline stall prone P4 say) however I see your point that
“threaded” and “optimised for vector systems (e.g. AVX512)” would be very
useful.
I am certainly not advocating that computers > 3 years old should be thrown away
;-) I am one of those folks with a bad hoarding instinct, “it’s good for parts” “it
still works fine” are all in my lexicon. If you are coot-ing and want to refine a
modest structure probably most machines < 10 years old will be fine.
What I was trying to say is that your experience of how fast something is will
depend on your use case, and that the boffins in Santa Clara and Sunnyvale have
not been sitting on their hands this past decade.
Finally, processing “modern” data sets can be a challenge even on fairly hefty
machines - if you pull data04 from https://zenodo.org/record/1443110 you will
find a 3 minute data set [1] which (even with XDS; tweaked for speed script)
can take a long while on a modern-ish machine. 10 year old core2 duo will not
get this done in the same kind of time-frame.
best wishes Graeme
PS kudos to folks for sharing the data online
[1] which would make a fun challenge benchmark :-)
On 3 Dec 2018, at 02:16, Markus Heckmann
<markus.21...@gmail.com<mailto:markus.21...@gmail.com>> wrote:
Hi Graeme,
I suspect that this conclusions depends very closely on (i) the shape of the
problem and (ii) the extent to which the binary has been optimised for the
given platform.
I do hope some of these info are analyzed and either published or at least put
at ccp4 wiki.
I am pretty sure that there are some applications (heavily threaded, making
extensive use of vector operations) which would be massively quicker on 2018
hardware than something a decade old. Certainly though, if you are comparing a
not-highly-optimised single threaded binary then your conclusion is probably a
valid one
I really request all the program developers (in the ccp4bb) to clearly have a
table in the website mentioning if certain program is purely GHz dependent and
not multi-threaded.
Also how much power the machines take to get work done is a non-trivial factor…
But what about the environment? Trashing a decent machine from 2015 for the
latest threadripper2? These old maches have 80-90 + gold power supply. Many
(like Apple's planned obsolescence) are *forcibly* destroyed not refurbished at
all.
Does DIALS run that much quicker? How much time is saved for a phd student in
their career if data processing speeds up from 15 min to 10 min?
Sure perfect for use @synchrotron but otherwise?
May the beamlines/synchrotons should allow for remote data processing and even
refinement. May be all program devs need to put benchmarks - will help users
greatly.
These days i have a feeling science copied the typical electron/website
framework programmers? Programs/website getting fatter not efficient and hoping
everyone has 128GB RAM.
Markus
Cheerio Graeme
On 30 Nov 2018, at 19:32, James Holton
<0000270165b9f4cf-dmarc-requ...@jiscmail.ac.uk<mailto:0000270165b9f4cf-dmarc-requ...@jiscmail.ac.uk>>
wrote:
I have a dissenting opinion about computers "moving on a bit". At least when
it comes to most crystallography software.
Back in the late 20th century I defined some benchmarks for common crystallographic
programs with the aim of deciding which hardware to buy. By about 2003 the champion of
my refmac benchmark (https://bl831.als.lbl.gov/~jamesh/benchmarks/index.html#refmac) was
the new (at the time) AMD "Opteron" at 1.4 GHz. That ran in 74 seconds.
Last year, I bought a rather expensive 4-socket Intel Xeon E7-8870 v3 (turbos
to 3.0 GHz), which is the current champion of my XDS benchmark. The same old
refmac benchmark on this new machine, however, runs in 68.6 seconds. Only a
smidge faster than that old Opteron (which I threw away years ago).
The Xeon X5550 in consideration here takes 74.1 seconds to run this same refmac
benchmark, so price/performance wise I'd say that's not such a bad deal.
The fastest time I have for refmac to date is 41.4 seconds on a Xeon W-2155,
but if you scale by GHz you can see this is mostly due to its fast clock speed
(turbo to 4.5 GHz). With a few notable exceptions like XDS, HKL2k and shelx,
which are multi-processing and optimized to take advantage of the latest
processor features using intel compilers, most crystallographic software is
either written in Python or compiled with gcc. In both these cases you end up
with performance pretty much scaling with GHz. And GHz is heat.
Admittedly, the correlation is not perfect, and software has changed a wee bit
over the years, so comparisons across the decades are not exactly fair, but the
lesson I have learned from all my benchmarking is that single-core raw
performance has not changed much in the last ~10 years or so. Almost all the
speed increase we have seen has come from parallelization.
And one should not be too quick to dismiss clusters in favor of a single box
with a high core count. The latter can be held back by memory contention and
other hard-to-diagnose problems. Even with parallel execution many
crystallography programs don't get any faster beyond using about 8-10 cores.
Don't let 100% utilization fool you! Use a timer and you'll see. I'm not
really sure why that is, but it is the reason that same Xeon W-2155 that leads
my refmac benchmark is also my champion system for running DIALS and
phenix.refine.
My two cents,
-James Holton
MAD Scientist
On 11/26/2018 1:10 AM, V F wrote:
Dear all,
Thanks for all the off/list replies.
To be honest, how much are they paying you to take it? Can you sell it for
scrap?
May be I will give it a pass.
To compare, two dual CPU servers with Skylake Gold 6148 - that is 40 cores -
will probably beat the whole lot even if you could keep the cluster going.
And keeping clusters busy is a time consuming challenge... I know!
If they are 250W servers, then you are looking at £8000 per year to power
and cool it. The two modern servers will be more like £1500 per year to run.
And the servers will only cost about £6000... the economics and planet don't
stack up!
By servers do you mean tower/standalone?
Thanks for the detailed explanation. From 2012, we already have many
dell precision T5600 with 2 x Xeon E5-2643 (8 Cores) (16 threads) and
I was hoping parallellisation with clusters maybe of some help. Looks
not.
These are running so well (takes about 45 min for a typical dataset
reduction with DIALS) I am not sure buying new ones is useful.
########################################################################
To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
########################################################################
To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
--
This e-mail and any attachments may contain confidential, copyright and or
privileged material, and are for the use of the intended addressee only. If you
are not the intended addressee or an authorised recipient of the addressee
please notify us of receipt by returning the e-mail and do not use, copy,
retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not
necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments
are free from viruses and we cannot accept liability for any damage which you
may sustain as a result of software viruses which may be transmitted in or with
the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and
Wales with its registered office at Diamond House, Harwell Science and
Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
########################################################################
To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
________________________________
To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
########################################################################
To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
########################################################################
To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1