int big_file_mpi_create(BigFile * bf, char * basename, MPI_Comm comm) {
    if(comm == MPI_COMM_NULL) return 0;
    int rank;
    MPI_Comm_rank(comm, &rank);
    int rt = big_file_create(bf, basename);
    MPI_Barrier(comm);
    return rt;
}
Exemple #2
0
int main(int argc, char * argv[]) {
    int opt;
    while(-1 != (opt = getopt(argc, argv, "t:n:N:"))) {
        switch(opt){
            case 'N':
                Nfile = atoi(optarg);
                break;
            case 't':
                dtype = optarg;
                break;
            case 'n':
                nmemb = atoi(optarg);
                break;
            default:
                usage();
        }
    }
    if(argc - optind < 3) {
        usage();
    }
    argv += optind - 1;
    BigFile bf = {0};
    BigBlock bb = {0};
    if(0 != big_file_create(&bf, argv[1])) {
        fprintf(stderr, "failed to create file : %s\n", big_file_get_error_message());
        return -1;
    }
    int Nfile;
    int Ninput = argc - optind - 2;
    size_t size[Nfile];
    size_t total = 0;
    int i;
    for(i = 0; i < Ninput; i ++) {
        struct stat st;
        stat(argv[i + 3], &st);
        total += st.st_size / dtype_itemsize(dtype) / nmemb;
    }
    for(i = 0; i < Nfile; i ++) {

    }
    
    if(0 != big_file_create_block(&bf, &bb, argv[2], dtype, nmemb, Nfile, fsize)) {
        fprintf(stderr, "failed to create block: %s\n", big_file_get_error_message());
        return -1;
    }
    for(i = 0; i < Nfile; i ++) {
        FILE * fp = fopen
    }
    big_file_close(&bf);
    return 0;
}