1
1

43 Коммитов

Автор SHA1 Сообщение Дата
Joshua Hursey
49c40f05d4 mpi/java: Remove dlopen() workaround
* See discussion on Issue #3705 regarding why this is no longer needed.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-08-24 11:56:17 -04:00
Ralph Castain
1e2019ce2a Revert "Update to sync with OMPI master and cleanup to build"
This reverts commit cb55c88a8b7817d5891ff06a447ea190b0e77479.
2016-11-22 15:03:20 -08:00
Ralph Castain
cb55c88a8b Update to sync with OMPI master and cleanup to build
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-11-22 14:24:54 -08:00
Joshua Hursey
f6f24a4f67 build: Custom libmpi(_FOO) name option in configure
* Add a configure time option to rename libmpi(_FOO).*
   - `--with-libmpi-name=STRING`
 * This commit only impacts the installed libraries.
   Internal, temporary libraries have not been renamed to limit the
   scope of the patch to only what is needed.

For example:
```shell
shell$ ./configure --with-libmpi-name=wookie
...
shell$ find . -name "libmpi*"
shell$ find . -name "libwookie*"
./lib/libwookie.so.0.0.0
./lib/libwookie.so.0
./lib/libwookie.so
./lib/libwookie.la
./lib/libwookie_mpifh.so.0.0.0
./lib/libwookie_mpifh.so.0
./lib/libwookie_mpifh.so
./lib/libwookie_mpifh.la
./lib/libwookie_usempi.so.0.0.0
./lib/libwookie_usempi.so.0
./lib/libwookie_usempi.so
./lib/libwookie_usempi.la
shell$
```
2016-09-29 21:47:24 -05:00
Nathaniel Graham
5380427050 Error handling improvements
This commit improves and corrects error handling.  In
cases where existing objects are altered after a call
to ompi_java_exceptionCheck, the results of the exception
check method are checked.  In the case of an exception,
memory is cleaned up and the code returns to Java without
altering existing objects.

Signed-off-by: Nathaniel Graham <ngraham@lanl.gov>
2016-09-08 11:25:43 -06:00
Nathaniel Graham
bb9485bcd9 Fix Java Coverity issue
Fixing a possible error that Coverity pointed out in
ompi_java_exceptionCheck.

Signed-off-by: Nathaniel Graham <nrgraham23@gmail.com>
2016-06-23 15:09:07 +02:00
Nathaniel Graham
679a66ccc8 Merge pull request #1803 from nrgraham23/jni_error_handling
Java bindings exception handling fix
2016-06-22 04:14:00 -07:00
Nathaniel Graham
88dea4e4de Java bindings exception handling fix
Fixed an error where if there were no MPI exceptions, a
JNI error could still exist and not get handled.

Signed-off-by: Nathaniel Graham <nrgraham23@gmail.com>
2016-06-21 12:40:31 +02:00
Jeff Squyres
5071602c59 PSM/PSM2: Disable signal handler hijacking by default
Per discussion on https://github.com/open-mpi/ompi/pull/1767 (and some
subsequent phone calls and off-issue email discussions), the PSM
library is hijacking signal handlers by default.  Specifically: unless
the environment variables `IPATH_NO_BACKTRACE=1` (for PSM / Intel
TrueScale) is set, the library constructor for this library will
hijack various signal handlers for the purpose of invoking its own
error reporting mechanisms.

This may be a bit *surprising*, but is not a *problem*, per se.  The
real problem is that older versions of at least the PSM library do not
unregister these signal handlers upon being unloaded from memory.
Hence, a segv can actually result in a double segv (i.e., the original
segv and then another segv when the now-non-existent signal handler is
invoked).

This PSM signal hijacking subverts Open MPI's own signal reporting
mechanism, which may be a bit surprising for some users (particularly
those who do not have Intel TrueScale).  As such, we disable it by
default so that Open MPI's own error-reporting mechanisms are used.

Additionally, there is a typo in the library destructor for the PSM2
library that may cause problems in the unloading of its signal
handlers.  This problem can be avoided by setting `HFI_NO_BACKTRACE=1`
(for PSM2 / Intel OmniPath).

This is further compounded by the fact that the PSM / PSM2 libraries
can be loaded by the OFI MTL and the usNIC BTL (because they are
loaded by libfabric), even when there is no Intel networking hardware
present.  Having the PSM/PSM2 libraries behave this way when no Intel
hardware is present is clearly undesirable (and is likely to be fixed
in future releases of the PSM/PSM2 libraries).

This commit sets the following two environment variables to disable
this behavior from the PSM/PSM2 libraries (if they are not already
set):

* IPATH_NO_BACKTRACE=1
* HFI_NO_BACKTRACE=1

If the user has set these variables before invoking Open MPI, we will
not override their values (i.e., their preferences will be honored).

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-06-14 11:45:23 -07:00
Gilles Gouaillardet
e918d75fae java: try do dlopen libmpi with the full path
Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more
propagated to children, so try to dlopen libmpi with the full path
using the directory of libmpi_java

Fixes open-mpi/ompi#1220

Thanks Alexander Daryin for reporting this
2015-12-22 11:09:46 +09:00
Nathaniel Graham
c4d70ab425 Fix Java related warnings
This commit fixes java related warnings.

Fixes #881

Signed-off-by: Nathaniel Graham <ngraham@lanl.gov>
2015-10-21 17:14:25 -07:00
Nathaniel Graham
2fecb06059 Status X Functons
Includes java bindings for MPI_GET_ELEMENTS_X and
MPI_STATUS_SET_ELEMENTS_X.  This PR also adds the
Count object which represents MPI_Count.

Signed-off-by: Nathaniel Graham <ngraham@lanl.gov>
2015-07-30 15:00:13 -06:00
Nathaniel Graham
a1b47a333a Java Environment Variable Bindings
Added the bindings for MPI_GET_VERSION and MPI_GET_LIBRARY_VERSION.

Signed-off-by: Nathaniel Graham <ngraham@lanl.gov>
2015-07-23 14:52:01 -06:00
Nathaniel Graham
7548e342dd Java bindings for alltoallw functions.
Includes bindings for MPI_ALLTOALLW and MPI_IALLTOALLW.

Signed-off-by: Nathaniel Graham <ngraham@lanl.gov>
2015-07-21 16:29:22 -06:00
Gilles Gouaillardet
e0dd9bd2e7 Fix java bindings disaster
that commit fixes :
- open-mpi/ompi@224f97b009
- open-mpi/ompi@ade7de549c
- open-mpi/ompi@0836344673
- open-mpi/ompi@7e0581c853
- open-mpi/ompi@d948a43993
2015-06-29 09:51:36 +09:00
Nathan Hjelm
4d92c9989e more c99 updates
This commit does two things. It removes checks for C99 required
headers (stdlib.h, string.h, signal.h, etc). Additionally it removes
definitions for required C99 types (intptr_t, int64_t, int32_t, etc).

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2015-06-25 10:14:13 -06:00
Ralph Castain
869041f770 Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
Howard Pritchard
224f97b009 mpi/java: suppress common symbols warning
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2015-06-15 17:13:40 -06:00
Ralph Castain
cfd2cc49fd Get the Java bindings to compile again - add missing header 2015-05-23 11:22:24 -07:00
Nathan Hjelm
68614a211b Merge pull request #596 from hjelmn/errorcode_fixes
Handle ompi error codes in java code and remove non-standard MPI error code from mpi.h.
2015-05-23 07:29:44 -06:00
Nathan Hjelm
9da29c3621 java: remove debug code
Talked to @ggouaillardet about this code. It was not intended to be committed to
master. Removing to fix coverity issue.

CID 1270134 Unchecked return value

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-05-22 08:36:14 -06:00
Nathan Hjelm
403b3b20d7 Handle ompi error codes in java code
This commit also adds protection against negative error codes in ompi
error code functions. There is one outstanding issue. There is a
negative MPI error code defined in mpi.h. This will need to be fixed
separetely.

This commit fixes coverity IDs 1271533 and 1270156.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-05-21 10:39:09 -06:00
Nathan Hjelm
757c021951 Fix coverity ID 1270164
The sargs array and its elements were malloced but not freed. Note
that strings passed to NewStringUTF are copied into Java's heap and it
is the callers responsibility to free the original string.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-05-21 10:15:10 -06:00
Howard Pritchard
18039b34b4 ompi/java: better error message if dlopen fails
The error message emitted by ompi/java when dlopen
fails is misleading and not very informative.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2015-04-06 13:35:09 -06:00
Jeff Squyres
8d38ac3cee java MPI bindings: use strdup() 2015-02-25 14:21:42 -08:00
Jeff Squyres
bd99b741d2 java: update to new mpool API 2015-02-24 13:31:23 -08:00
Nathan Hjelm
ed78553512 Update opal_free_list_t usage to reflect new class interface.
Please verify your components have been updated correctly. Keep in
mind that in terms of threading:

OPAL_FREE_LIST_GET -> opal_free_list_get_st
OPAL_FREE_LIST_RETURN -> opal_free_list_return_st

I used the opal_using_threads() variant anytime it appeared multiple
threads could be operating on the free list. If this is not the case
update to _st. If multiple threads are always in use change to _mt.
2015-02-24 10:05:44 -07:00
Gilles Gouaillardet
a16c1e4418 mpiJava: call mca_base_var_register *after* MPI_Init
Thanks to Takahiro Kawashima and Siegmar Gross for pointing this issue
2014-10-27 14:41:54 +09:00
Oscar Vega-Gisbert
f1133e2520 Java: initialize free list to only 2 buffers
This commit was SVN r31454.
2014-04-19 12:03:52 +00:00
Oscar Vega-Gisbert
5a21790caa Java: improve access to Java arrays.
This commit was SVN r31391.
2014-04-14 21:29:13 +00:00
Oscar Vega-Gisbert
f133b6b693 Java: move buffer methods from Comm.c to MPI.c
This commit was SVN r31303.
2014-04-01 21:34:51 +00:00
Oscar Vega-Gisbert
3be348e34a Java: create an MCA parameter: ompi_mpi_java_eager
This commit was SVN r31301.
2014-04-01 20:57:12 +00:00
Oscar Vega-Gisbert
a1004bf5cd Java: remove useless native datatype initialization
This commit was SVN r31293.
2014-03-29 19:08:39 +00:00
Oscar Vega-Gisbert
845818de59 Avoid use Status member in Request.
This commit was SVN r31287.
2014-03-29 18:13:38 +00:00
Oscar Vega-Gisbert
3a31869a58 Authorship of Java bindings
This commit was SVN r30901.
2014-03-01 20:18:05 +00:00
Oscar Vega-Gisbert
ad8f57396a Avoid creating status objects in the C side.
It is necessary because calling java methods from C is very slow.

This commit was SVN r30799.
2014-02-23 20:08:53 +00:00
Oscar Vega-Gisbert
04172e47c3 mpi.Prequest: improve start and startAll
This commit was SVN r30769.
2014-02-18 22:33:15 +00:00
Oscar Vega-Gisbert
d06e5ab42e Improve exception check.
This commit was SVN r30737.
2014-02-15 16:38:29 +00:00
Jeff Squyres
684dc2f849 Don't use the hard-coded name libmpi.so -- instead, use
libmpi.<OPAL_DYN_LIB_SUFFIX>, where OPAL_DYN_LIB_SUFFIX was determined
by configure.

Thanks to Ömer Demirel for reporting the issue.

Refs trac:3905.

This commit was SVN r29676.

The following Trac tickets were found above:
  Ticket 3905 --> https://svn.open-mpi.org/trac/ompi/ticket/3905
2013-11-13 03:25:18 +00:00
Jeff Squyres
e4e3e411fc Next generation of MPI Java bindings.
Includes all MPI functions supported by Open MPI, including MPI-3
functions (as of about 2 weeks ago).  Many changes compared to the
prior generation of Java bindings; not much is left from the prior
generation, actually.  The changes include (but are not limited to):

 * Add support for more than just a subset of MPI-1 functions
 * Use typical Java case for symbol names
 * Support Java Direct buffers (giving darn-near "native C"
   performance)
 * Support "type struct" better than the prior generation
 * Make more of an effort for the Java bindings to be a thin layer
   over the back-end C bindings
 * ...and more

A proper README with more information about what is supported, how to
use these bindings, etc. will be committed shortly.

This commit was SVN r29263.
2013-09-26 21:44:39 +00:00
Ralph Castain
a4b6fb241f Remove all remaining vestiges of the Windows integration
This commit was SVN r28137.
2013-02-28 17:31:47 +00:00
Ralph Castain
da5f290cef During this initial deployment, output a more definitive error message when libs cannot load
This commit was SVN r26005.
2012-02-22 21:59:31 +00:00
Ralph Castain
47c64ec837 Roll in Java bindings per telecon discussion. Man pages still under revision
This commit was SVN r25973.
2012-02-20 22:12:43 +00:00