Esempio n. 1
0
void _XMP_onesided_initialize(int argc, char **argv)
{
#ifdef _XMP_FJRDMA
  if(_XMP_world_size > _XMP_ONESIDED_MAX_PROCS){
    if(_XMP_world_rank == 0)
      fprintf(stderr, "Warning : Onesided operations cannot be not used in %d processes (up to %d processes)\n", 
	      _XMP_world_size, _XMP_ONESIDED_MAX_PROCS);

    return;
  }
#endif

#ifdef _XMP_GASNET
  size_t _xmp_heap_size, _xmp_stride_size;
  _xmp_heap_size   = _get_size("XMP_ONESIDED_HEAP_SIZE");
  _xmp_stride_size = _get_size("XMP_ONESIDED_STRIDE_SIZE");
  _xmp_heap_size  += _xmp_stride_size;
  _XMP_gasnet_initialize(argc, argv, _xmp_heap_size, _xmp_stride_size);
  _XMP_gasnet_intrinsic_initialize();
#elif _XMP_FJRDMA
  _XMP_fjrdma_initialize(argc, argv);
#elif _XMP_MPI3_ONESIDED
  size_t _xmp_heap_size;
  _xmp_heap_size   = _get_size("XMP_ONESIDED_HEAP_SIZE");
  _XMP_mpi_onesided_initialize(argc, argv, _xmp_heap_size);
#endif

#ifdef _XMP_TCA
  _XMP_tca_initialize(argc, argv);
#endif

#if defined(_XMP_GASNET) || defined(_XMP_FJRDMA) || defined(_XMP_TCA) || defined(_XMP_MPI3_ONESIDED)
  _XMP_build_sync_images_table();
  _XMP_build_coarray_queue();
  _XMP_post_wait_initialize();
#endif
}
Esempio n. 2
0
	/**
	 *  @param target use the buffer bound to the target specified
	 *  @param access the access specifier for the buffer mapping
	 *
	 * This class is non-copyable.
	 *
	 *  @glsymbols
	 *  @glfunref{MapBuffer}
	 *
	 *  @throws Error
	 */
	BufferRawMap(BufferTarget target, Bitfield<BufferMapAccess> access)
	 : _offset(0)
	 , _size(_get_size(target))
	 , _ptr(
		OGLPLUS_GLFUNC(MapBuffer)(
			GLenum(target),
			_translate(GLbitfield(access))
		)
	), _target(target)
	{
		OGLPLUS_CHECK(
			MapBuffer,
			ObjectError,
			ObjectBinding(_target)
		);
	}
Esempio n. 3
0
	/**
	 *  @param buffer use the specified buffer
	 *  @param access the access specifier for the buffer mapping
	 *
	 * This class is non-copyable.
	 *
	 *  @throws Error
	 */
	DSABufferRawMapEXT(
		BufferName buffer,
		Bitfield<BufferMapAccess> access
	): _offset(0)
	 , _size(_get_size(GetGLName(buffer)))
	 , _ptr(
		OGLPLUS_GLFUNC(MapNamedBufferEXT)(
			GetGLName(buffer),
			_translate(GLbitfield(access))
		)
	), _buf_name(GetGLName(buffer))
	{
		OGLPLUS_CHECK(
			MapNamedBufferEXT,
			ObjectError,
			Object(buffer)
		);
	}