Commit dcf7eee8 authored by Marc Vef's avatar Marc Vef
Browse files

ifs_test: added MPI

parent 17dcffda
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -4,5 +4,13 @@ project(ifs_test)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)

find_package(MPI REQUIRED)

include_directories(${MPI_INCLUDE_PATH})

set(SOURCE_FILES main.cpp)
set(SOURCE_FILES_MPI main_MPI.cpp)
add_executable(ifs_test ${SOURCE_FILES})
add_executable(ifs_test_MPI ${SOURCE_FILES_MPI})

target_link_libraries(ifs_test_MPI ${MPI_C_LIBRARIES})
 No newline at end of file
+3 −3
Original line number Diff line number Diff line
@@ -9,9 +9,9 @@ using namespace std;
using ns = chrono::nanoseconds;
using get_time = chrono::steady_clock;

int main() {

int main(int argc, char* argv[]) {

    auto filen = strtol(argv[1], NULL, 20);

//    cout << mkdir("/tmp/mountdir/bla", 0775) << endl;
//    auto buf = "BUFFERINO2";
@@ -37,7 +37,7 @@ int main() {
//        return 1;
//    }

    int filen = 3;
//    int filen = 3;

    auto start_t = get_time::now();

ifs_test/main_MPI.cpp

0 → 100644
+52 −0
Original line number Diff line number Diff line
#include <iostream>
#include <unistd.h>
#include <fstream>
#include <fcntl.h>
#include <sys/stat.h>
#include <chrono>
#include <mpi.h>
using namespace std;

using ns = chrono::nanoseconds;
using get_time = chrono::steady_clock;

int main(int argc, char* argv[]) {

    auto filen = strtol(argv[1], NULL, 20);

    MPI_Init(NULL, NULL);
    int world_size;
    MPI_Comm_size(MPI_COMM_WORLD, &world_size);
    int rank;
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);


//    int filen = 3;

    cout << "Hello from rank " << rank << endl;

    auto start_t = get_time::now();

    for (int i = 0; i < filen; ++i) {
        string p = "/tmp/mountdir/file" + to_string(rank) + "_" + to_string(i);
        creat(p.c_str(), 0666);
        if (i % 25000 == 0)
            cout << i << " files processed." << endl;
//        cout << p << endl;
    }

    auto end_t = get_time::now();
    auto diff = end_t - start_t;

    auto diff_count = chrono::duration_cast<ns>(diff).count();

    cout << diff_count << "ns\t" << (diff_count) / 1000000. << "ms" << endl;
    cout << filen / ((diff_count) / 1000000000.) << " files per second" << endl;


    MPI_Finalize();

//    cout << "done" << endl;
    return 0;

}
 No newline at end of file