> On Mar 13, 2017, at 9:37 PM, Jeff Hammond <[email protected]> wrote:
> 
> OpenMP did not prevent OpenCL, C11, C++11 or Fortran 2008 from introducing 
> parallelism. Not sure if your comment was meant to be serious, but it appears 
> unfounded nonetheless.

  Ahh, but note that all of the "introduced parallelisms" by these "standards" 
sucked so Jed may have a valid point.

> 
> Jeff
> 
> On Sun, Mar 12, 2017 at 11:16 AM Jed Brown <[email protected]> wrote:
> Implementation-defined, but it's exactly the same as malloc, which also 
> doesn't promise unfaulted pages. This is one reason some of us keep saying 
> that OpenMP sucks. It's a shitty standard that obstructs better standards 
> from being created.
> 
> 
> On March 12, 2017 11:19:49 AM MDT, Jeff Hammond <[email protected]> 
> wrote:
> 
> On Sat, Mar 11, 2017 at 9:00 AM Jed Brown <[email protected]> wrote:
> Jeff Hammond <[email protected]> writes:
> > I agree 100% that multithreaded codes that fault pages from the main thread 
> > in a NUMA environment are doing something wrong ;-)
> >
> > Does calloc *guarantee* pages are not mapped? If I calloc(8), do I get the 
> > zero page or part of the arena that's already mapped that is zeroed by the 
> > heap manager?
> 
> Is your argument that calloc() should never be used in multi-threaded code?
> 
> I never use it for code that I want to behave well in a NUMA environment. 
> 
> 
> If the allocation is larger than MMAP_THRESHOLD (128 KiB by default for
> glibc) then it calls mmap.  This obviously leaves an intermediate size
> that could be poorly mapped (assuming 4 KiB pages), but it's also so
> small that it easily fits in cache.
> 
> Is this behavior standardized or merely implementation-defined? I'm not 
> interested in writing code that assumes Linux/glibc. 
> 
> Jeff 
> 
> -- 
> Jeff Hammond
> [email protected]
> http://jeffhammond.github.io/
> -- 
> Jeff Hammond
> [email protected]
> http://jeffhammond.github.io/

Reply via email to