Implemented everything pending Python chart generation
This commit is contained in:
parent
475aaf100f
commit
29b4f6b2ef
@ -14,25 +14,24 @@
|
||||
#include <vector>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
extern void setup(int64_t N, uint64_t A[]);
|
||||
extern int64_t sum(int64_t N, uint64_t A[]);
|
||||
|
||||
/* The benchmarking program */
|
||||
int main(int argc, char** argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
std::cout << std::fixed << std::setprecision(2);
|
||||
|
||||
#define MAX_PROBLEM_SIZE 1 << 28 // 256M
|
||||
std::vector<int64_t> problem_sizes{ MAX_PROBLEM_SIZE >> 5, MAX_PROBLEM_SIZE >> 4, MAX_PROBLEM_SIZE >> 3, MAX_PROBLEM_SIZE >> 2, MAX_PROBLEM_SIZE >> 1, MAX_PROBLEM_SIZE};
|
||||
|
||||
#define MAX_PROBLEM_SIZE 1 << 28 // 256M
|
||||
std::vector<int64_t> problem_sizes{MAX_PROBLEM_SIZE >> 5, MAX_PROBLEM_SIZE >> 4, MAX_PROBLEM_SIZE >> 3, MAX_PROBLEM_SIZE >> 2, MAX_PROBLEM_SIZE >> 1, MAX_PROBLEM_SIZE};
|
||||
|
||||
std::vector<uint64_t> A(MAX_PROBLEM_SIZE);
|
||||
|
||||
int64_t t;
|
||||
int n_problems = problem_sizes.size();
|
||||
|
||||
/* For each test size */
|
||||
for (int64_t n : problem_sizes)
|
||||
for (int64_t n : problem_sizes)
|
||||
{
|
||||
printf("Working on problem size N=%lld \n", n);
|
||||
|
||||
@ -40,13 +39,19 @@ int main(int argc, char** argv)
|
||||
setup(n, &A[0]);
|
||||
|
||||
// insert your timer code here
|
||||
std::chrono::time_point<std::chrono::high_resolution_clock> start_time = std::chrono::high_resolution_clock::now();
|
||||
|
||||
// invoke method to perform the sum
|
||||
t = sum(n, &A[0]);
|
||||
|
||||
// insert your end timer code here, and print out elapsed time for this problem size
|
||||
std::chrono::time_point<std::chrono::high_resolution_clock> end_time = std::chrono::high_resolution_clock::now();
|
||||
|
||||
printf(" Sum result = %lld \n",t);
|
||||
std::chrono::duration<double> elapsed = end_time - start_time;
|
||||
|
||||
std::cout << " Elapsed time is : " << elapsed.count() << " " << std::endl;
|
||||
|
||||
printf(" Sum result = %lld \n", t);
|
||||
|
||||
} // end loop over problem sizes
|
||||
}
|
||||
|
||||
@ -13,6 +13,7 @@ void
|
||||
setup(int64_t N, uint64_t A[])
|
||||
{
|
||||
printf(" inside direct_sum problem_setup, N=%lld \n", N);
|
||||
result = 0;
|
||||
}
|
||||
|
||||
int64_t
|
||||
@ -23,6 +24,6 @@ sum(int64_t N, uint64_t A[])
|
||||
{
|
||||
result += i;
|
||||
}
|
||||
return 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@ -6,19 +6,29 @@
|
||||
#include <vector>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
int64_t result;
|
||||
|
||||
void
|
||||
setup(int64_t N, uint64_t A[])
|
||||
{
|
||||
printf(" inside sum_vector problem_setup, N=%lld \n", N);
|
||||
result = 0;
|
||||
for (int64_t i = 0; i < N; i++)
|
||||
{
|
||||
A[i] = i;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int64_t
|
||||
sum(int64_t N, uint64_t A[])
|
||||
{
|
||||
printf(" inside sum_vector perform_sum, N=%lld \n", N);
|
||||
|
||||
return 0;
|
||||
for (int64_t i = 0; i < N; i++)
|
||||
{
|
||||
result += A[i];
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user