Skip to content
Snippets Groups Projects
Select Git revision
  • c6f8ebcd96cee3133d7b1151b1d30454d0fe368e
  • stable default protected
  • MA_Pape_2018
  • MA_2018_Lopatin
  • feature/mesh_viewer
  • feature/#468_access_isosurface_scalar
  • feature/#459_default_primitives
  • master protected
  • feature/#470_Create_a_color_lookup_table
  • feature/#473_resize_companion_window
  • feature/#462_do_not_use_arb_extensions
  • feature/#495_Provide_data_for_larger_isosurfaces
  • feature/#323_default_image
  • feature/#480_Create_a_smaller_test_mesh_for_combustion_demo
  • feature/#236_Get_Integration_tests_running_on_CI
  • feature/#447_Copy_standard_assets_to_build_folder
  • 447-copy-standard-assets-to-build-folder-and-remove-resource-path
  • feature/#445_mesh_render_settings_component
  • feature/#251_Make_sure_tests_cpp_is_compiled_once
  • feature/#455_Remove_navigation_and_improve_interaction_for_combustion_demo
  • feature/446_strange_txt_files
  • v18.06.0
  • v18.05.0
  • #251_bad
  • #251_good
  • v18.03.0
  • v18.02.0
  • v18.01.0
  • v17.12.0
  • v17.11.0
  • v17.10.0
  • v17.09.0
  • v17.07.0
33 results

resource_utils.hpp

Blame
  • performancetest.cpp 6.94 KiB
    #include "performancetest.h"
    #include <iostream>
    
    PerformanceTest::PerformanceTest() {}
    
    // Bestehende Implementierungen für CPU und OpenMP
    
    double PerformanceTest::runSingleTest(Dijkstra* algorithm, int graphSize) {
        // Graph generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
    
        // Startknoten festlegen
        int src = 0;
    
        // Zeit messen
        auto start = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, src);
    
        auto end = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = end - start;
    
        return elapsed.count();
    }
    
    double PerformanceTest::runSingleTest(AStar* algorithm, int graphSize) {
        // Graph und Heuristik generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
        auto heuristic = graphGenerator.generateHeuristic(graphSize);
    
        // Start- und Zielknoten festlegen
        int start = 0;
        int goal = graphSize - 1;
    
        // Zeit messen
        auto startTime = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, heuristic, start, goal);
    
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = endTime - startTime;
    
        return elapsed.count();
    }
    
    double PerformanceTest::runSingleTest(ALT* algorithm, int graphSize) {
        // Graph generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
    
        // Start- und Zielknoten festlegen
        int start = 0;
        int goal = graphSize - 1;
    
        // Zeit messen
        auto startTime = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, start, goal);
    
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = endTime - startTime;
    
        return elapsed.count();
    }
    
    double PerformanceTest::runSingleTestWithNodes(Dijkstra* algorithm, int graphSize, int start, int goal) {
        // Graph generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
    
        // Zeit messen
        auto startTime = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, start);
    
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = endTime - startTime;
    
        return elapsed.count();
    }
    
    double PerformanceTest::runSingleTestWithNodes(AStar* algorithm, int graphSize, int start, int goal) {
        // Graph und Heuristik generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
        auto heuristic = graphGenerator.generateHeuristic(graphSize);
    
        // Zeit messen
        auto startTime = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, heuristic, start, goal);
    
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = endTime - startTime;
    
        return elapsed.count();
    }
    
    double PerformanceTest::runSingleTestWithNodes(ALT* algorithm, int graphSize, int start, int goal) {
        // Graph generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
    
        // Zeit messen
        auto startTime = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, start, goal);
    
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = endTime - startTime;
    
        return elapsed.count();
    }
    
    // Neue Implementierungen für CUDA
    
    double PerformanceTest::runSingleTestCUDA(DijkstraCUDA* algorithm, int graphSize) {
        // Graph generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
    
        // Startknoten festlegen
        int src = 0;
    
        // Zeit messen
        auto start = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, src);
    
        auto end = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = end - start;
    
        return elapsed.count();
    }
    
    double PerformanceTest::runSingleTestCUDA(AStarCUDA* algorithm, int graphSize) {
        // Graph und Heuristik generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
        auto heuristic = graphGenerator.generateHeuristic(graphSize);
    
        // Start- und Zielknoten festlegen
        int start = 0;
        int goal = graphSize - 1;
    
        // Zeit messen
        auto startTime = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, heuristic, start, goal);
    
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = endTime - startTime;
    
        return elapsed.count();
    }
    
    double PerformanceTest::runSingleTestCUDA(ALTCUDA* algorithm, int graphSize) {
        // Graph generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
    
        // Start- und Zielknoten festlegen
        int start = 0;
        int goal = graphSize - 1;
    
        // Zeit messen
        auto startTime = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, start, goal);
    
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = endTime - startTime;
    
        return elapsed.count();
    }
    
    double PerformanceTest::runSingleTestWithNodesCUDA(DijkstraCUDA* algorithm, int graphSize, int start, int goal) {
        // Graph generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
    
        // Zeit messen
        auto startTime = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, start);
    
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = endTime - startTime;
    
        return elapsed.count();
    }
    
    double PerformanceTest::runSingleTestWithNodesCUDA(AStarCUDA* algorithm, int graphSize, int start, int goal) {
        // Graph und Heuristik generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
        auto heuristic = graphGenerator.generateHeuristic(graphSize);
    
        // Zeit messen
        auto startTime = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, heuristic, start, goal);
    
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = endTime - startTime;
    
        return elapsed.count();
    }
    
    double PerformanceTest::runSingleTestWithNodesCUDA(ALTCUDA* algorithm, int graphSize, int start, int goal) {
        // Graph generieren
        auto graph = graphGenerator.generateRandomGraph(graphSize);
    
        // Zeit messen
        auto startTime = std::chrono::high_resolution_clock::now();
    
        // Algorithmus ausführen
        algorithm->run(graph, start, goal);
    
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> elapsed = endTime - startTime;
    
        return elapsed.count();
    }