From 2ddd1cc28ee6e66898eb565301b3a32f11de28f6 Mon Sep 17 00:00:00 2001 From: John Romein <romein@astron.nl> Date: Thu, 18 Dec 2008 08:41:50 +0000 Subject: [PATCH] bug 225: * Define HAVE_BGP_ION or HAVE_BGP_CN if appropriate. * Added FCNP test program. --- RTCP/FCNP/test/Makefile.am | 21 ++++-------- RTCP/FCNP/test/tBandwidth_cn.cc | 50 +++++++++++++++++++++++++++ RTCP/FCNP/test/tBandwidth_ion.cc | 58 ++++++++++++++++++++++++++++++++ autoconf_share/variants.bgfen | 6 ++-- 4 files changed, 118 insertions(+), 17 deletions(-) create mode 100644 RTCP/FCNP/test/tBandwidth_cn.cc create mode 100644 RTCP/FCNP/test/tBandwidth_ion.cc diff --git a/RTCP/FCNP/test/Makefile.am b/RTCP/FCNP/test/Makefile.am index 9a9193931f8..d94c4b83083 100644 --- a/RTCP/FCNP/test/Makefile.am +++ b/RTCP/FCNP/test/Makefile.am @@ -1,18 +1,11 @@ -check_PROGRAMS = +check_PROGRAMS = tBandwidth_cn tBandwidth_ion -# programs to run through supplied checktools -CHECKTOOLPROGS = $(check_PROGRAMS) - -# scripts used to run tests -TESTSCRIPTS = - -# scripts and possible programs to run tests -TESTS = $(TESTSCRIPTS) - -XFAIL_TESTS = - -# all files (.run, .stdout, .in, .log_prop, etc.) needed to run tests -EXTRA_DIST = $(TESTSCRIPTS) +tBandwidth_cn_SOURCES = tBandwidth_cn.cc +tBandwidth_cn_LDADD = ../src/libfcnp_cn.la +tBandwidth_cn_DEPENDENCIES = ../src/libfcnp_cn.la $(LOFAR_DEPEND) +tBandwidth_ion_SOURCES = tBandwidth_ion.cc +tBandwidth_ion_LDADD = ../src/libfcnp_ion.la +tBandwidth_ion_DEPENDENCIES = ../src/libfcnp_ion.la $(LOFAR_DEPEND) include $(top_srcdir)/Makefile.common diff --git a/RTCP/FCNP/test/tBandwidth_cn.cc b/RTCP/FCNP/test/tBandwidth_cn.cc new file mode 100644 index 00000000000..c0d6be5e84a --- /dev/null +++ b/RTCP/FCNP/test/tBandwidth_cn.cc @@ -0,0 +1,50 @@ +#include <lofar_config.h> + +#if defined HAVE_BGP_CN + +#include <mpi.h> +#include <iostream> + +#include <FCNP/fcnp_cn.h> + + +static char largeBuffer[128 * 1024 * 1024] __attribute__((aligned(16))); + +int main(int argc, char **argv) +{ + std::vector<unsigned> psetDimensions(3); + + psetDimensions[0] = 4; + psetDimensions[1] = 2; + psetDimensions[2] = 2; + + int rank; + + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + FCNP_CN::init(psetDimensions); + + if (rank == 0) { + for (size_t size = 16; size <= 128 * 1024 * 1024; size <<= 1) + for (unsigned i = 0; i < 16; i ++) + FCNP_CN::IONtoCN_ZeroCopy(largeBuffer, size); + + for (size_t size = 16; size <= 128 * 1024 * 1024; size <<= 1) + for (unsigned i = 0; i < 16; i ++) + FCNP_CN::CNtoION_ZeroCopy(largeBuffer, size); + } + + MPI_Finalize(); + + return 0; +} + +#else + +int main() +{ + return 0; +} + +#endif // defined HAVE_BGP_CN diff --git a/RTCP/FCNP/test/tBandwidth_ion.cc b/RTCP/FCNP/test/tBandwidth_ion.cc new file mode 100644 index 00000000000..0f489835791 --- /dev/null +++ b/RTCP/FCNP/test/tBandwidth_ion.cc @@ -0,0 +1,58 @@ +#include <lofar_config.h> + +#if defined HAVE_BGP_ION + +#include <iostream> +#include <pthread.h> + +#include <bpcore/ppc450_inlines.h> + +#include <FCNP/fcnp_ion.h> + + +static char largeBuffer[128 * 1024 * 1024] __attribute__((aligned(16))); + + +int main(int argc, char **argv) +{ + memset(largeBuffer, 0, sizeof largeBuffer); + + FCNP_ION::init(true); + + for (size_t size = 16; size <= 128 * 1024 * 1024; size <<= 1) { + FCNP_ION::IONtoCN_ZeroCopy(0, largeBuffer, size); + + unsigned long long start_time = _bgp_GetTimeBase(); + + for (unsigned i = 0; i < 15; i ++) + FCNP_ION::IONtoCN_ZeroCopy(0, largeBuffer, size); + + unsigned long long stop_time = _bgp_GetTimeBase(); + std::cout << "size = " << size << ": ION->CN = " << (15 * 8.0 * size / ((stop_time - start_time) / 850e6)) << std::endl; + } + + for (size_t size = 16; size <= 128 * 1024 * 1024; size <<= 1) { + FCNP_ION::CNtoION_ZeroCopy(0, largeBuffer, size); + + unsigned long long start_time = _bgp_GetTimeBase(); + + for (unsigned i = 0; i < 15; i ++) + FCNP_ION::CNtoION_ZeroCopy(0, largeBuffer, size); + + unsigned long long stop_time = _bgp_GetTimeBase(); + std::cout << "size = " << size << ": CN->ION = " << (15 * 8.0 * size / ((stop_time - start_time) / 850e6)) << std::endl; + } + + FCNP_ION::end(); + + return 0; +} + +#else + +int main() +{ + return 0; +} + +#endif // defined HAVE_BGP_ION diff --git a/autoconf_share/variants.bgfen b/autoconf_share/variants.bgfen index 0b32c7d2c3c..04d8d2a5264 100644 --- a/autoconf_share/variants.bgfen +++ b/autoconf_share/variants.bgfen @@ -1,4 +1,4 @@ -gnu.compiler.conf: CC=/usr/bin/gcc CXX=/usr/bin/g++ CCAS=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-gcc CCASFLAGS='-DHAVE_BGP' --with-cppflags='-DHAVE_BGP' --disable-lib64 +gnu.compiler.conf: CC=/usr/bin/gcc CXX=/usr/bin/g++ CCAS=/usr/bin/gcc #gnu.compiler.conf: CC=/usr/bin/gcc CXX=/usr/bin/g++ CCAS=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-gcc --disable-lib64 #gnubgp.compiler.conf: CC=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-gcc CXX=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-g++ CCAS=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-gcc CCASFLAGS='-DHAVE_BGP' --disable-lib64 #gnubgp.compiler.conf: CC=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-gcc CXX=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-gcc CCAS=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-gcc CCASFLAGS='-DHAVE_BGP' --disable-lib64 @@ -14,10 +14,10 @@ ion.variant.conf: $(lofar_root) $(debugopt) $(threads) $(noshmem) $(ion_cp #bgp_ldd.var: --with-ldflags='-L/bgsys/drivers/ppcfloor/comm/lib -L/bgsys/drivers/ppcfloor/runtime/SPI' --with-libs='-lcxxmpich.cnk -lmpich.cnk -ldcmfcoll.cnk -ldcmf.cnk -lpthread -lrt -lSPI.cna -lm' #cn_cpp.var: --with-cppflags='-DHAVE_BGP -I/bgsys/drivers/ppcfloor/comm/include -I/bgsys/drivers/ppcfloor/arch/include -I/usr/include' -cn_cpp.var: --with-cppflags='-B/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/bin -DHAVE_BGP -I/bgsys/drivers/ppcfloor/comm/include -I/bgsys/drivers/ppcfloor/arch/include' +cn_cpp.var: --with-cppflags='-B/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/bin -DHAVE_BGP -DHAVE_BGP_CN -I/bgsys/drivers/ppcfloor/comm/include -I/bgsys/drivers/ppcfloor/arch/include' #cn_ldd.var: --with-ldflags='-L/bgsys/drivers/ppcfloor/comm/lib -L/bgsys/drivers/ppcfloor/runtime/SPI -L/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/lib -L/usr/lib' --with-libs='-lcxxmpich.cnk -lmpich.cnk -ldcmfcoll.cnk -ldcmf.cnk -lpthread -lrt -lSPI.cna -lm' #cn_ldd.var: --with-ldflags='-static -L/bgsys/drivers/ppcfloor/comm/lib -L/bgsys/drivers/ppcfloor/runtime/SPI -L/usr/lib' --with-libs='-lcxxmpich.cnk /bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/lib/libstdc++.a -lmpich.cnk -ldcmfcoll.cnk -ldcmf.cnk -lpthread -lrt -lSPI.cna -lm' cn_ldd.var: --with-ldflags='-B/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/bin -L/bgsys/drivers/ppcfloor/comm/lib -L/bgsys/drivers/ppcfloor/runtime/SPI' --with-libs='-lcxxmpich.cnk -lmpich.cnk -ldcmfcoll.cnk -ldcmf.cnk -lpthread -lrt -lSPI.cna -lm' -ion_cpp.var: --with-cppflags='-B/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/bin -DHAVE_BGP -I/bgsys/drivers/ppcfloor/comm/include -I/bgsys/drivers/ppcfloor/arch/include' +ion_cpp.var: --with-cppflags='-B/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/bin -DHAVE_BGP -DHAVE_BGP_ION -I/bgsys/drivers/ppcfloor/comm/include -I/bgsys/drivers/ppcfloor/arch/include' ion_ldd.var: --with-ldflags='-B/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/bin' -- GitLab