Skip to content

Commit

Permalink
Merge pull request open-mpi#667 from rhc54/topic/cudaext
Browse files Browse the repository at this point in the history
Add CUDA MPI extension for Rolf - because @jsquyres  said it was OKAY
  • Loading branch information
rhc54 committed Jun 25, 2015
2 parents a172bd1 + a390a8f commit d01f37c
Show file tree
Hide file tree
Showing 7 changed files with 202 additions and 0 deletions.
24 changes: 24 additions & 0 deletions ompi/mpiext/cuda/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#
# Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2015 NVIDIA, Inc. All rights reserved
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#

# This Makefile is not traversed during a normal "make all" in an OMPI
# build. It *is* traversed during "make dist", however. So you can
# put EXTRA_DIST targets in here.
#
# You can also use this as a convenience for building this MPI
# extension (i.e., "make all" in this directory to invoke "make all"
# in all the subdirectories).

SUBDIRS = c

EXTRA_DIST = README.txt
10 changes: 10 additions & 0 deletions ompi/mpiext/cuda/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright (c) 2015 NVIDIA, Inc. All rights reserved.

$COPYRIGHT$

Rolf Vandervart


This extension provides a blah blah blah

See MPIx_CUDA_SUPPORT(3) for more details.
41 changes: 41 additions & 0 deletions ompi/mpiext/cuda/c/MPIx_CUDA_SUPPORT.3in
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
.\" Copyright 2007-2010 Oracle and/or its affiliates. All rights reserved.
.\" Copyright (c) 1996 Thinking Machines Corporation
.\" Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
.\" Copyright (c) 2015 NVIDIA, Inc. All rights reserved.
.TH MPIx_CUDA_SUPPORT 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
.SH NAME
\fBMPIx_CUDA_SUPPORT\fP \- Obtain prettyprint strings of processor affinity information for this process

.SH SYNTAX
.ft R
.SH C Syntax
.nf
#include <mpi.h>
#include <mpi-ext.h>

int MPIx_CUDA_SUPPORT(void)
.fi
.SH Fortran Syntax
There is no Fortran binding for this function.
.
.SH C++ Syntax
There is no C++ binding for this function.
.
.SH INPUT PARAMETERS
.ft R
.
.SH OUTPUT PARAMETERS
.ft R
.TP 1i

.SH DESCRIPTION
.ft R

.SH Examples
.ft R

.SH See Also
.ft R
.nf
JeffIsAToad(1)
.fi
45 changes: 45 additions & 0 deletions ompi/mpiext/cuda/c/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#
# Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2015 NVIDIA, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#

# This file builds the C bindings for MPI extensions. It must be
# present in all MPI extensions.

# We must set these #defines so that the inner OMPI MPI prototype
# header files do the Right Thing.
AM_CPPFLAGS = -DOMPI_PROFILE_LAYER=0 -DOMPI_COMPILING_FORTRAN_WRAPPERS=1

include $(top_srcdir)/Makefile.ompi-rules

# Convenience libtool library that will be slurped up into libmpi.la.
noinst_LTLIBRARIES = libmpiext_cuda.la

# This is where the top-level header file (that is included in
# <mpi-ext.h>) must be installed.
ompidir = $(ompiincludedir)/ompi/mpiext/cuda/c

# This is the header file that is installed.
ompi_HEADERS = mpiext_cuda.h

# Sources for the convenience libtool library. Other than the one
# header file, all source files in the extension have no file naming
# conventions.
libmpiext_cuda_la_SOURCES = \
$(ompi_HEADERS) \
mpiext_cuda.c
libmpiext_cuda_la_LDFLAGS = -module -avoid-version

# Man page installation
nodist_man_MANS = MPIx_CUDA_SUPPORT.3

# Man page sources
EXTRA_DIST = $(nodist_man_MANS:.3=.3in)
26 changes: 26 additions & 0 deletions ompi/mpiext/cuda/c/mpiext_cuda.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 Los Alamos National Security, LLC. All rights
* reserved.
* Copyright (c) 2015 NVIDIA, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*
*/

#include "ompi_config.h"

#include <stdio.h>
#include <string.h>

int MPIx_CUDA_SUPPORT(void)
{
return OPAL_ERR_NOT_SUPPORTED;
}
15 changes: 15 additions & 0 deletions ompi/mpiext/cuda/c/mpiext_cuda.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/*
* Copyright (c) 2004-2009 The Trustees of Indiana University.
* All rights reserved.
* Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015 NVIDIA, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*
*/

OMPI_DECLSPEC int MPIx_CUDA_SUPPORT(void);
41 changes: 41 additions & 0 deletions ompi/mpiext/cuda/configure.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# -*- shell-script -*-
#
# Copyright (c) 2004-2010 The Trustees of Indiana University.
# All rights reserved.
# Copyright (c) 2012-2015 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2015 Intel, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#

# OMPI_MPIEXT_cuda_CONFIG([action-if-found], [action-if-not-found])
# -----------------------------------------------------------
AC_DEFUN([OMPI_MPIEXT_cuda_CONFIG],[
AC_CONFIG_FILES([ompi/mpiext/cuda/Makefile])
AC_CONFIG_FILES([ompi/mpiext/cuda/c/Makefile])

OPAL_VAR_SCOPE_PUSH([ompi_mpi_ext_cuda_happy])

# If we don't want FT, don't compile this extention
AS_IF([test "$ENABLE_cuda" = "1" || \
test "$ENABLE_EXT_ALL" = "1"],
[ompi_mpi_ext_cuda_happy=1],
[ompi_mpi_ext_cuda_happy=0])

AS_IF([test "$ompi_mpi_ext_cuda_happy" = "1" && \
test "$CUDA_SUPPORT" = "1"],
[$1],
[ # Error if the user specifically asked for this extension,
# but we can't build it.
AS_IF([test "$ENABLE_cuda" = "1"],
[AC_MSG_WARN([Requested "cuda" MPI extension, but cannot build it])
AC_MSG_WARN([because cuda support is not enabled.])
AC_MSG_WARN([Try again with --with-cuda])
AC_MSG_ERROR([Cannot continue])])
$2])

OPAL_VAR_SCOPE_POP
])

0 comments on commit d01f37c

Please sign in to comment.