From: David Wells Date: Mon, 24 Aug 2015 21:17:44 +0000 (-0400) Subject: Remove the test affinity.cc. X-Git-Tag: v8.4.0-rc2~551^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=384d5c6;p=dealii.git Remove the test affinity.cc. This test fails if users export the environment variable DEAL_II_NUM_THREADS as a value unequal to the number of logical cores. --- diff --git a/tests/quick_tests/CMakeLists.txt b/tests/quick_tests/CMakeLists.txt index 1647fc7835..aa5c7425c1 100644 --- a/tests/quick_tests/CMakeLists.txt +++ b/tests/quick_tests/CMakeLists.txt @@ -80,11 +80,6 @@ FOREACH(_build ${DEAL_II_BUILD_TYPES}) make_quicktest("step" ${_build} "") ENDFOREACH() -# Test whether thread affinity is well behaved -IF (DEAL_II_WITH_THREADS) -make_quicktest("affinity" ${_mybuild} "") -ENDIF() - # Test if MPI is configured correctly IF (DEAL_II_WITH_MPI) make_quicktest("mpi" ${_mybuild} 2) diff --git a/tests/quick_tests/affinity.cc b/tests/quick_tests/affinity.cc deleted file mode 100644 index 24bb167541..0000000000 --- a/tests/quick_tests/affinity.cc +++ /dev/null @@ -1,81 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2013 - 2015 by the deal.II authors -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - -#include -#include -#include - -#if defined(__linux__) -#include -#include -#endif - -bool getaffinity(unsigned int &bits_set,unsigned int &mask) -{ - bits_set = 0; - mask = 0x00; - -#if defined(__linux__) - cpu_set_t my_set; - CPU_ZERO(&my_set); - - unsigned int len = sizeof(my_set); - int ret = sched_getaffinity(0, len, &my_set); - - if (ret!=0) - { - printf("sched_getaffinity() failed, return value: %d\n", ret); - return false; - } - for (int i=0;i test; - - unsigned int bits_set, mask; - if (!getaffinity(bits_set, mask)) - return 1; - - unsigned int nprocs = dealii::MultithreadInfo::n_cores(); - unsigned int tbbprocs = dealii::MultithreadInfo::n_threads(); - printf("aff_ncpus=%d, mask=%08X, nprocs=%d, tbb_threads=%d\n", - bits_set, mask, nprocs, tbbprocs ); - - if (bits_set !=0 && bits_set!=nprocs) - { - printf("Warning: sched_getaffinity() returns that we can only use %d out of %d CPUs.\n",bits_set, nprocs); - return 2; - } - if (nprocs != tbbprocs) - { - printf("Warning: for some reason TBB only wants to use %d out of %d CPUs.\n", - tbbprocs, nprocs); - return 3; - } - - return 0; -} diff --git a/tests/quick_tests/run.cmake b/tests/quick_tests/run.cmake index e941ff0b65..77527d1104 100644 --- a/tests/quick_tests/run.cmake +++ b/tests/quick_tests/run.cmake @@ -1,6 +1,6 @@ ## --------------------------------------------------------------------- ## -## Copyright (C) 2013 by the deal.II authors +## Copyright (C) 2015 by the deal.II authors ## ## This file is part of the deal.II library. ## @@ -34,15 +34,6 @@ to the mailing list linked at http://www.dealii.org\n" ) FOREACH(test ${ALL_TESTS}) - IF (${test} MATCHES "^affinity" AND NOT EXISTS ${test}-OK) - MESSAGE(" -The affinity test can fail when you are linking in a library like BLAS -which uses OpenMP. Even without calling any BLAS functions, OpenMP messes -with the thread affinity which causes TBB to run single-threaded only. You -can fix this by exporting OMP_NUM_THREADS=1.\n" - ) - ENDIF() - IF (${test} MATCHES "^step-petsc" AND NOT EXISTS ${test}-OK) MESSAGE(" Additional information about PETSc issues is available