jdevinney / bale_old Goto Github PK
View Code? Open in Web Editor NEWA collection of buffered communication libraries and some mini-applications.
A collection of buffered communication libraries and some mini-applications.
When building bale from scratch, with the following changes to install.sh
:
fromscratch=1
option="--with-upc=no --with-shmem CC=oshcc"
I get the following error during thelibgetput
"make" step:
libtool: compile: oshcc -DHAVE_CONFIG_H -I. -I../../libgetput -g -O2 -DUSE_SHMEM -g -O2 -MT liblibgetput_la-libgetput__c.lo -MD -MP -MF .deps/liblibgetput_la-libgetput__c.Tpo -c libgetput__c.c -o liblibgetput_la-libgetput__c.o >/dev/null 2>&1
mv -f .deps/liblibgetput_la-libgetput__c.Tpo .deps/liblibgetput_la-libgetput__c.Plo
/bin/bash ./libtool --mode=link -o liblibgetput.la -rpath /home/dave/Repos/bale/build_ubuntu/lib liblibgetput_la-libgetput__c.lo
Usage: /home/dave/Repos/bale/build_ubuntu/libgetput/libtool [OPTION]... [MODE-ARG]...
Try 'libtool --help' for more information.
libtool: error: unrecognised option: '-o'
Makefile:545: recipe for target 'liblibgetput.la' failed
make[1]: *** [liblibgetput.la] Error 1
make[1]: Leaving directory '/home/dave/Repos/bale/build_ubuntu/libgetput'
Makefile:423: recipe for target 'all' failed
make: *** [all] Error 2
build of libgetput failed!
Strangely, I can avoid this error by setting either of the flags, AM_LDFLAGS
or AM_UPCFLAGS
, to any string. This is true even separately from the install script:
$ cd libgetput
$ autoreconf -if
$ ./configure --prefix=<install_dir> --with-upc=no --with-shmem CC=oshcc
$ AM_UPCFLAGS=foobar make
I'm not quite sure if this is expected, if I'm doing something wrong, or if there may be some cleaner solution... I can reproduce the issue in Ubuntu and Mac OSX. Thanks in advance for you help!
While reading through the documentation in convey.h, I found myself confused on the semantics of the item_bytes parameter to convey_begin when I'm calling convey_begin on an elastic conveyor. Since an elastic conveyor can take items of different sizes and item_bytes sets the size of items in a conveyor, there seemed to be a contradiction.
Originally my thought was that elastic conveyors can accept different item sizes, but only in different stages of the program. That is you would have to call begin and reset repeatedly on the same conveyor to get it to accept different item sizes. But the section on elastic conveyors in your paper didn't seem to be saying this, and that use case seemed less than useful anyway...
I believe the correct interpretation is that elastic conveyors can accept any items up to the maximum size at any time as long as you use epull/epush, but because you can also call vanilla push/pull on an elastic conveyor the item_size set by convey_begin still constrains the permissible arguments to those calls (without constraining epull/epush). Is that correct?
I have a cluster that I am trying to run bale on and the compile fails during convey.
The system in CentOS 7 and I am using UPCC and BUPC. I have included the system information, the UPCC information, and the output of install.sh. Do you have any ideas on what I could do differently?
SYSTEM INFORMATION:
[user@hostname bale]$ more /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
UPCC INFORMATION:
[user@hostname bale]$ upcc --version
This is upcc (the Berkeley Unified Parallel C compiler), v. 2019.4.2
----------------------+---------------------------------------------------------
UPC Runtime | v. 2019.4.2, built on Aug 5 2019 at 13:31:29
----------------------+---------------------------------------------------------
UPC-to-C translator | v. 2.28.0, built on Aug 5 2019 at 11:53:28
| host hostname.local linux-x86_64/64
| gcc v4.8.5 20150623 (Red Hat 4.8.5-16)
----------------------+---------------------------------------------------------
Translator location | /share/apps/upc_trans/2.28.0/targ
----------------------+---------------------------------------------------------
networks supported | smp udp ibv
----------------------+---------------------------------------------------------
default network | ibv
----------------------+---------------------------------------------------------
pthreads support | available (if used, default is 2 pthreads per process)
----------------------+---------------------------------------------------------
Configured with | '--with-translator=/share/apps/upc_trans/2.28.0/targ'
| '--disable-aligned-segments'
| '--prefix=/share/apps/berkeley_upc/2019.4.2/gcc/8.2.0//
| opt' '--with-multiconf-magic=opt'
----------------------+---------------------------------------------------------
Configure features | trans_bupc,pragma_upc_code,driver_upcc,runtime_upcr,
| gasnet,upc_collective,upc_io,upc_memcpy_async,
| upc_memcpy_vis,upc_ptradd,upc_thread_distance,upc_tick,
| upc_sem,upc_dump_shared,upc_trace_printf,
| upc_trace_mask,upc_local_to_shared,upc_all_free,
| upc_atomics,pupc,upc_types,upc_castable,upc_nb,nodebug,
| notrace,nostats,nodebugmalloc,nogasp,nothrille,
| segment_fast,os_linux,cpu_x86_64,cpu_64,cc_gnu,
| packedsptr,upc_io_64
----------------------+---------------------------------------------------------
Configure id | hostname.local Mon Aug 5 13:27:46 PDT 2019 d3p852
----------------------+---------------------------------------------------------
Binary interface | 64-bit x86_64-unknown-linux-gnu
----------------------+---------------------------------------------------------
Runtime interface # | Runtime supports 3.0 -> 3.13: Translator uses 3.6
----------------------+---------------------------------------------------------
| --- BACKEND SETTINGS (for ibv network) ---
----------------------+---------------------------------------------------------
C compiler | /share/apps/gcc/8.2.0/bin/gcc
| GNU/8.2.0/8.2.0
| gcc (GCC) 8.2.0 Copyright (C) 2018 Free Software
| Foundation, Inc.
----------------------+---------------------------------------------------------
C compiler flags | -O3 --param max-inline-insns-single=35000 --param
| inline-unit-growth=10000 --param
| large-function-growth=200000 -Wno-unused
| -Wunused-result -Wno-unused-parameter -Wno-address
----------------------+---------------------------------------------------------
linker | /share/apps/gcc/8.2.0/bin/gcc
| GNU/8.2.0/8.2.0
| gcc (GCC) 8.2.0 Copyright (C) 2018 Free Software
| Foundation, Inc.
----------------------+---------------------------------------------------------
linker flags | -O3 --param max-inline-insns-single=35000 --param
| inline-unit-growth=10000 --param
| large-function-growth=200000 -Wno-unused
| -Wunused-result -Wno-unused-parameter -Wno-address
| -L/share/apps/berkeley_upc/2019.4.2/gcc/8.2.0/opt/lib
| -lupcr-ibv-seq -lumalloc
| -L/share/apps/berkeley_upc/2019.4.2/gcc/8.2.0/opt/lib
| -lgasnet-ibv-seq -libverbs -lpthread -lrt
| -L/share/apps/gcc/8.2.0/lib/gcc/x86_64-pc-linux-gnu/8.2
| .0 -lgcc -lm
----------------------+---------------------------------------------------------
[user@hostname bale]$ UPCFLAGS="-bupc -network=ibv" ./install.sh -c "CFLAGS=-g" -u -f
libgetput
autoreconf -fi
../../libgetput/configure --prefix=/home/user/git/bale/build_unknown --with-upc CFLAGS=-g
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '12572' is supported by ustar format... yes
checking whether GID '100' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking for ranlib... ranlib
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... none needed
checking for upcc... upcc
checking dependency style of upcc... none
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libgetput.pc
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
test -z "liblibgetput.a" || rm -f liblibgetput.a
rm -f *.o
(CDPATH="${ZSH_VERSION+.}:" && cd ../../libgetput && /bin/sh /home/user/git/bale/libgetput/missing autoheader)
rm -f stamp-h1
touch ../../libgetput/config.h.in
cd . && /bin/sh ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make all-am
make[1]: Entering directory /home/user/git/bale/build_unknown/libgetput' source='../../libgetput/libgetput.upc' object='libgetput.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../libgetput/depcomp \ upcc -DHAVE_CONFIG_H -I. -I../../libgetput -bupc -network=ibv -c -o libgetput.o ../../libgetput/libgetput.upc ../../libgetput/libgetput.upc: In function 'lgp_atomic_add': ../../libgetput/libgetput.upc:58:17: warning: implicit declaration of function 'bupc_atomicI64_fetchadd_relaxed'; did you mean 'upc_atomic_relaxed'? [-Wimplicit-function-declaration] ../../libgetput/libgetput.upc: In function 'lgp_cmp_and_swap': ../../libgetput/libgetput.upc:132:17: warning: implicit declaration of function 'bupc_atomicI64_cswap_relaxed'; did you mean 'upc_atomic_relaxed'? [-Wimplicit-function-declaration] rm -f liblibgetput.a ar cru liblibgetput.a libgetput.o ranlib liblibgetput.a make[1]: Leaving directory
/home/user/git/bale/build_unknown/libgetput'
make[1]: Entering directory /home/user/git/bale/build_unknown/libgetput' /usr/bin/mkdir -p '/home/user/git/bale/build_unknown/lib' /usr/bin/install -c -m 644 liblibgetput.a '/home/user/git/bale/build_unknown/lib' ( cd '/home/user/git/bale/build_unknown/lib' && ranlib liblibgetput.a ) /usr/bin/mkdir -p '/home/user/git/bale/build_unknown/include' /usr/bin/install -c -m 644 ../../libgetput/libgetput.h '/home/user/git/bale/build_unknown/include' /usr/bin/mkdir -p '/home/user/git/bale/build_unknown/lib/pkgconfig' /usr/bin/install -c -m 644 libgetput.pc '/home/user/git/bale/build_unknown/lib/pkgconfig' make[1]: Leaving directory
/home/user/git/bale/build_unknown/libgetput'
exstack
autoreconf -fi
../../exstack/configure --prefix=/home/user/git/bale/build_unknown --with-upc CFLAGS=-g
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '12572' is supported by ustar format... yes
checking whether GID '100' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking for ranlib... ranlib
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... none needed
checking for upcc... upcc
checking dependency style of upcc... none
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for libdeps... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating exstack.pc
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
test -z "libexstack.a" || rm -f libexstack.a
rm -f *.o
(CDPATH="${ZSH_VERSION+.}:" && cd ../../exstack && /bin/sh /home/user/git/bale/exstack/missing autoheader)
rm -f stamp-h1
touch ../../exstack/config.h.in
cd . && /bin/sh ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make all-am
make[1]: Entering directory /home/user/git/bale/build_unknown/exstack' source='exstack.upc' object='libexstack_a-exstack.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../exstack/depcomp \ upcc -DHAVE_CONFIG_H -I. -I../../exstack -I/home/user/git/bale/build_unknown/include -bupc -network=ibv -c -o libexstack_a-exstack.o
test -f 'exstack.upc' || echo '../../exstack/'exstack.upc source='exstack2.upc' object='libexstack_a-exstack2.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../exstack/depcomp \ upcc -DHAVE_CONFIG_H -I. -I../../exstack -I/home/user/git/bale/build_unknown/include -bupc -network=ibv -c -o libexstack_a-exstack2.o
test -f 'exstack2.upc' || echo '../../exstack/'exstack2.upc ../../exstack/exstack2.upc: In function
exstack2_send':
../../exstack/exstack2.upc:334: warning: passing arg 1 of lgp_fetch_and_inc' discards qualifiers from pointer target type rm -f libexstack.a ar cru libexstack.a libexstack_a-exstack.o libexstack_a-exstack2.o ranlib libexstack.a make[1]: Leaving directory
/home/user/git/bale/build_unknown/exstack'
make[1]: Entering directory /home/user/git/bale/build_unknown/exstack' /usr/bin/mkdir -p '/home/user/git/bale/build_unknown/lib' /usr/bin/install -c -m 644 libexstack.a '/home/user/git/bale/build_unknown/lib' ( cd '/home/user/git/bale/build_unknown/lib' && ranlib libexstack.a ) /usr/bin/mkdir -p '/home/user/git/bale/build_unknown/include' /usr/bin/install -c -m 644 ../../exstack/exstack.h '/home/user/git/bale/build_unknown/include' /usr/bin/mkdir -p '/home/user/git/bale/build_unknown/lib/pkgconfig' /usr/bin/install -c -m 644 exstack.pc '/home/user/git/bale/build_unknown/lib/pkgconfig' make[1]: Leaving directory
/home/user/git/bale/build_unknown/exstack'
convey
autoreconf -fi
../../convey/configure --prefix=/home/user/git/bale/build_unknown --with-upc CFLAGS=-g
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C99... none needed
checking whether gcc and cc understand -c and -o together... yes
checking for ranlib... ranlib
checking for upcc... upcc
checking dependency style of upcc... none
checking whether ln -s works... yes
checking for doxygen... doxygen
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for inttypes.h... (cached) yes
checking for int64_t... yes
checking for uint64_t... yes
checking for unistd.h... (cached) yes
checking for gethostname... yes
checking for sqrt in -lm... yes
checking upc.h usability... yes
checking upc.h presence... no
configure: WARNING: upc.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: upc.h: proceeding with the compiler's result
checking for upc.h... yes
checking for upc_castable.h... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating convey.pc
config.status: creating Doxyfile
config.status: creating config.h
config.status: executing depfiles commands
convey 0.4.5
Prefix.............: /home/user/git/bale/build_unknown
Programming Model..: UPC
MPP Profiling......: no
C Compiler.........: gcc -g
Linker.............: gcc -lm
test -z "alltoallu histogupc indexgupc" || rm -f alltoallu histogupc indexgupc
test -z "*__upc.upc tests.out doxywarn.txt doxygen.stamp convey-doxy-0.4.5.tar.gz" || rm -f *__upc.upc tests.out doxywarn.txt doxygen.stamp convey-doxy-0.4.5.tar.gz
test -z "libconvey.a" || rm -f libconvey.a
rm -rf html latex
rm -f .o
test -z "test_simple.log test_tensor.log test_elastic.log test_examples.log" || rm -f test_simple.log test_tensor.log test_elastic.log test_examples.log
test -z "test_simple.trs test_tensor.trs test_elastic.trs test_examples.trs" || rm -f test_simple.trs test_tensor.trs test_elastic.trs test_examples.trs
test -z "test-suite.log" || rm -f test-suite.log
make all-am
make[1]: Entering directory `/home/user/git/bale/build_unknown/convey'
INFO: Linking UPC copy of C file: circle__upc.upc
source='circle__upc.upc' object='circle__upc.o' libtool=no
DEPDIR=.deps depmode=none /bin/sh ../../convey/depcomp
upcc -DHAVE_CONFIG_H -I. -I../../convey -bupc -network=ibv -c -o circle__upc.o circle__upc.upc
upcc: error compiling translated C code:
circle__upc.w2c.h:43:24: error: conflicting types for 'sorter_new'
unsigned long tail;
^
In file included from circle__upc.trans.c:30:
/home/user/git/bale/build_unknown/convey/../../convey/sorter.h:53:11: note: previous declaration of 'sorter_new' was here
sorter_t sorter_new(int n, area_t areas[n], size_t item_bytes, size_t capacity,
^~~~~~~~~~
circle__upc.w2c.h:47:22: error: conflicting types for 'sorter_setup'
^
In file included from circle__upc.trans.c:30:
/home/user/git/bale/build_unknown/convey/../../convey/sorter.h:57:6: note: previous declaration of 'sorter_setup' was here
bool sorter_setup(sorter_t* self);
^~~~~~~~~~~~
circle__upc.w2c.h:49:22: error: conflicting types for 'sorter_push'
^
In file included from circle__upc.trans.c:30:
/home/user/git/bale/build_unknown/convey/../../convey/sorter.h:62:6: note: previous declaration of 'sorter_push' was here
bool sorter_push(sorter_t* self, const void* item, int dest);
^~~~~~~~~~~
circle__upc.w2c.h:51:22: error: conflicting types for 'sorter_flush'
^
In file included from circle__upc.trans.c:30:
/home/user/git/bale/build_unknown/convey/../../convey/sorter.h:66:6: note: previous declaration of 'sorter_flush' was here
bool sorter_flush(sorter_t* self);
^~~~~~~~~~~~
circle__upc.upc:63:24: error: conflicting types for 'sorter_new'
In file included from circle__upc.trans.c:30:
/home/user/git/bale/build_unknown/convey/../../convey/sorter.h:53:11: note: previous declaration of 'sorter_new' was here
sorter_t* sorter_new(int n, area_t areas[n], size_t item_bytes, size_t capacity,
^~~~~~~~~~
circle__upc.upc:83:22: error: conflicting types for 'sorter_setup'
In file included from circle__upc.trans.c:30:
/home/user/git/bale/build_unknown/convey/../../convey/sorter.h:57:6: note: previous declaration of 'sorter_setup' was here
bool sorter_setup(sorter_t* self);
^~~~~~~~~~~~
circle__upc.upc:91:22: error: conflicting types for 'sorter_push'
In file included from circle__upc.trans.c:30:
/home/user/git/bale/build_unknown/convey/../../convey/sorter.h:62:6: note: previous declaration of 'sorter_push' was here
bool sorter_push(sorter_t* self, const void* item, int dest);
^~~~~~~~~~~
circle__upc.upc:119:22: error: conflicting types for 'sorter_flush'
In file included from circle__upc.trans.c:30:
/home/user/git/bale/build_unknown/convey/../../convey/sorter.h:66:6: note: previous declaration of 'sorter_flush' was here
bool sorter_flush(sorter_t* self);
^~~~~~~~~~~~
gmake[2]: *** [circle__upc.trans.o] Error 1
make[1]: *** [circle__upc.o] Error 255
make[1]: Leaving directory `/home/user/git/bale/build_unknown/convey'
make: *** [all] Error 2
build of convey failed!
After commit d48a155 there appear to be missing files in the convey/m4
directory. For instance, ax_check_compiler_flags.m4
, acx_pthread.m4
, doxygen.am
, and possibly more. Is it possible these files were omitted from that commit?
The issue may be related to the toplevel .gitignore
file, which apparently excludes all m4/
directories recursively. For instance, I added my own copies of ax_check_compiler_flags.m4
and ax_pthread.m4
(from gnu.org) to see if I could fix the problem, but I see that those files are ignored by git.
Side note: the error I saw leading to this was:
configure.ac:68: error: possibly undefined macro: AC_MSG_ERROR
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
but that error might be misleading... I think it's due to the missing ACX_PTHREAD
macro.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.