[Beowulf] Stroustrup regarding multicore

Ed Hill ed at eh3.com
Tue Aug 26 11:04:46 PDT 2008

On Tue, 26 Aug 2008 12:53:11 -0400 "Perry E. Metzger" wrote:
> "Perry E. Metzger" <perry at piermont.com> writes:
> > I have a copy of the C99 document and it is indeed required that the
> > locations be consecutive (though there can of course be padding for
> > alignment purposes if you have an array of structures).
> >
> > If you wish for me to quote chapter and verse from the document, I
> > will.
> For the hell of it, I whipped my copy out, since I was in the mood.
> Indeed, if one looks at page 47 of Technical Corrigendum 2 of the C99
> document, one learns that:
>    An array type describes a contiguously allocated nonempty set of
>    objects with a particular member object type, called the element
>    type.
> Note the phrase "contiguously allocated", which is a term of art in
> the document meaning precisely what you think it means.

Hi Perry,

Thank you for shining some light into this language ghetto !!!

[ And I mean that in the best possible sense.  Its sad to see  
  some folks on this list make such simultaneously eager and 
  untrue pronouncements about programming languages. ]

The ISO C++ standard has similar contiguous-allocation guarantees such
as (Sec 23.2.4 of ISO/IEC 14882:2003):

   A vector is a kind of sequence that supports random access 
   iterators.  In addition, it supports (amortized) constant 
   time insert and erase operations at the end; insert and 
   erase in the middle take linear time.  Storage management 
   is handled automatically, though hints can be given to
   improve efficiency. The elements of a vector are stored 
   contiguously, meaning that if v is a vector<T, Allocator> 
   where T is some type other than bool, then it obeys the 
   identity &v[n] == &v[0] + n for all 0 <= n < v.size().

And guarantees like the above make it rather easy for programmers to,
for instance, "assemble" their inputs in C++ and then, if they want,
call C, Fortran, assembly-optimized, or even GPU-/FPGA-implemented
routines to perform BLAS, (I)DFT, or other operations.

Remember, folks, languages do not have to be an "xor" choice.  The "and"
operator is available to all of us.


Edward H. Hill III, PhD  |  ed at eh3.com  |  http://eh3.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://www.beowulf.org/pipermail/beowulf/attachments/20080826/73963150/attachment.sig>

More information about the Beowulf mailing list