[petsc-users] Understanding the memory bandwidth
Matthew Knepley
knepley at gmail.com
Thu Aug 13 15:30:47 CDT 2015
On Thu, Aug 13, 2015 at 3:22 PM, Justin Chang <jychang48 at gmail.com> wrote:
> On Thu, Aug 13, 2015 at 1:04 PM, Jed Brown <jed at jedbrown.org> wrote:
> > It looks like with one core/socket, all your memory sits over one
> > channel. You can play tricks to avoid that or use 4 cores/socket in
> > order to use all memory channels.
>
> How do I play these tricks?
>
> > So this is a pretty low fraction (55%) of 59.7*2 = 119.4. I suspect
> > your memory or motherboard is at most 1600 MHz, so your peak would be
> > 102.4 GB/s.
>
> > You can check this as root using "dmidecode --type 17", which should
> > give one entry per channel, looking something like this:
> >
> > Handle 0x002B, DMI type 17, 34 bytes
> > Memory Device
> > Array Handle: 0x002A
> > Error Information Handle: 0x002F
> > Total Width: Unknown
> > Data Width: Unknown
> > Size: 4096 MB
> > Form Factor: DIMM
> > Set: None
> > Locator: DIMM0
> > Bank Locator: BANK 0
> > Type: <OUT OF SPEC>
> > Type Detail: None
> > Speed: Unknown
> > Manufacturer: Not Specified
> > Serial Number: Not Specified
> > Asset Tag: Unknown
> > Part Number: Not Specified
> > Rank: Unknown
> > Configured Clock Speed: 1600 MHz
>
> I have no root access. Is there another way to confirm the clock speed?
>
> ---
>
> So if I have two sockets per node, then the theoretical peak bandwidth
> is actually double than what I thought (whether it be 119.4 GB/s or
> 102.4 GB/s). And if 8 cores really is the optimal number to use for a
> single compute node, why are there 20 totals to begin with? Or would
> this depend on the particular application?
>
Kind Answer: Different application have different needs
Cynical Answer: Computer companies sell you what they can produce,
lots of cores, not what you need, lots of bandwidth. Bandwidth is very
expensive and there are technical limits.
> Also, can someone elaborate on the difference between the words
> "core", "processor", and "thread"?
>
A core and a processor are hardware terms. I think they are both fuzzy,
but I understand a core to be something that can carry a thread of
execution,
namely a program counter, instruction and data stream, and compute
something.
A thread is a logical construct for talking about an execution stream.
Matt
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150813/a402ae40/attachment-0001.html>
More information about the petsc-users
mailing list