From 166d52a3d2077358336f8d42300327af782718e9 Mon Sep 17 00:00:00 2001 From: boufaras Date: Tue, 8 Feb 2011 10:09:11 +0000 Subject: [PATCH] git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@2110 331e1502-861f-0410-8da2-ba01fb791d7f --- .../tutoriel/Kswap-OneMax/testKswapHC.cu | 64 +++---------------- 1 file changed, 9 insertions(+), 55 deletions(-) diff --git a/ParadisEO-GPU/tutoriel/Kswap-OneMax/testKswapHC.cu b/ParadisEO-GPU/tutoriel/Kswap-OneMax/testKswapHC.cu index 1aa3c4d38..0dd383ec8 100644 --- a/ParadisEO-GPU/tutoriel/Kswap-OneMax/testKswapHC.cu +++ b/ParadisEO-GPU/tutoriel/Kswap-OneMax/testKswapHC.cu @@ -1,5 +1,5 @@ //Init the number of threads per block -#define BLOCK_SIZE 512 +#define BLOCK_SIZE 256 #include #include using namespace std; @@ -27,39 +27,8 @@ using namespace std; #include // Local search algorithm #include -// Simple HC algorithm -#include // The simple HC algorithm explorer #include -#include - -/** - * @return the factorial of an unsigned integer - * @param i an integer - */ - -unsigned long int factorial1(unsigned int i) { - if (i == 0) - return 1; - else - return i * factorial1(i - 1); -} - -/** - * @return the neighborhood Size from the solution size and number of swap - * @param _size the solution size - * @param _Kswap the number of swap - */ - -unsigned long int sizeMapping1( unsigned int _size, unsigned int _Kswap) { - - unsigned long int _sizeMapping = _size; - for (unsigned int i = _Kswap; i > 0; i--) { - _sizeMapping *= (_size - i); - } - _sizeMapping /= factorial1(_Kswap + 1); - return _sizeMapping; -} // REPRESENTATION typedef moCudaBitVector solution; @@ -68,13 +37,12 @@ typedef moCudaKflipNeighborhood Neighborhood; void main_function(int argc, char **argv) { - /* ========================================================= * * Parameters * * ========================================================= */ - + // First define a parser from the command-line arguments eoParser parser(argc, argv); @@ -91,7 +59,7 @@ void main_function(int argc, char **argv) parser.processParam( vecSizeParam, "Representation" ); unsigned vecSize = vecSizeParam.value(); -// Swap number + // Swap number eoValueParam KSwapParam(0, "KSwap", "swap number", 'N'); parser.processParam(KSwapParam, "KSwap" ); unsigned KSwap = KSwapParam.value(); @@ -120,7 +88,6 @@ void main_function(int argc, char **argv) //reproducible random seed: if you don't change SEED above, // you'll aways get the same result, NOT a random run rng.reseed(seed); - srand(time(NULL)); /* ========================================================= * @@ -128,10 +95,7 @@ void main_function(int argc, char **argv) * * ========================================================= */ - solution sol(vecSize); - if(vecSize<64) - for(unsigned i=0;i incr_eval; moCudaKswapEval > cueval(sizeMap,incr_eval); @@ -182,20 +147,11 @@ void main_function(int argc, char **argv) * The local search algorithm * * ========================================================= */ + //True continuator <=> Always continue - moTrueContinuator continuator; - moLocalSearch localSearch(explorer,continuator, eval); - /* ========================================================= - * - * The simple Hill Climbing algorithm - * - * ========================================================= */ - - moSimpleHC simpleHC(neighborhood,eval,cueval); - /* ========================================================= * * Execute the local search from random sollution @@ -205,17 +161,15 @@ void main_function(int argc, char **argv) //Can be eval here, else it will be done at the beginning of the localSearch eval(sol); - std::cout << "initial: " << sol.fitness()<< std::endl; + std::cout << "initial: " << sol<< std::endl; // Create timer for timing CUDA calculation moCudaTimer timer; timer.start(); localSearch(sol); timer.stop(); + std::cout << "final: " << sol<< std::endl; printf("CUDA execution time = %f ms\n",timer.getTime()); timer.deleteTimer(); - std::cout << "final: " << sol.fitness() << std::endl; - - } // A main that catches the exceptions