return (double) (time(NULL));
#endif /* HAVE_GETTIMEOFDAY? */
- return tv.tv_sec + tv.tv_usec / 1000000.0;
+ return (double)tv.tv_sec + (double)tv.tv_usec / 1e6;
}
void xbt_os_sleep(double sec)
#elif HAVE_NANOSLEEP
struct timespec ts;
- ts.tv_sec = sec;
- ts.tv_nsec = (sec - floor(sec)) * 1e9;
+ ts.tv_sec = (time_t)sec;
+ ts.tv_nsec = (long)((sec - floor(sec)) * 1e9);
nanosleep (&ts, NULL);
#else /* don't have nanosleep. Use select to sleep less than one second */
struct timeval timeout;
- timeout.tv_sec = (unsigned long) (sec);
- timeout.tv_usec = (sec - floor(sec)) * 1000000;
+ timeout.tv_sec = (long)sec;
+ timeout.tv_usec = (long)(sec - floor(sec)) * 1e6);
select(0, NULL, NULL, NULL, &timeout);
#endif
// Set the elements between buf[start] and buf[stop-1] to (i+value)%256
static void set(uint8_t *buf, size_t start, size_t stop, uint8_t value) {
for(size_t i = start; i < stop; i++) {
- buf[i] = (i+value)%256;
+ buf[i] = (uint8_t)((i + value) % 256);
}
}
for(int i = 0; i < nb_blocks-1; i++) {
size_t start = shared_blocks[2*i+1];
size_t stop = shared_blocks[2*i+2];
- set(buf, start, stop, rank);
+ set(buf, start, stop, (uint8_t)rank);
}
}
// Then, even processes send their buffer to their successor
if(rank%2 == 0) {
- MPI_Send(buf, mem_size, MPI_UINT8_T, rank+1, 0, MPI_COMM_WORLD);
+ MPI_Send(buf, (int)mem_size, MPI_UINT8_T, rank + 1, 0, MPI_COMM_WORLD);
}
else {
- MPI_Recv(buf, mem_size, MPI_UINT8_T, rank-1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
+ MPI_Recv(buf, (int)mem_size, MPI_UINT8_T, rank - 1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
}
for(int i = 0; i < nb_blocks-1; i++) {
size_t start = shared_blocks[2*i+1];
size_t stop = shared_blocks[2*i+2];
- int comm = check_all(buf, start, stop, rank-1);
+ int comm = check_all(buf, start, stop, (uint8_t)(rank - 1));
printf("[%d] The result of the (normal) communication check for block (0x%zx, 0x%zx) is: %d\n", rank, start, stop, comm);
}
memset(buf, rank, mem_size);
// Then, even processes send a sub-part of their buffer their successor
// Note that the last block should not be copied entirely
if(rank%2 == 0) {
- MPI_Send(buf+0x10000, mem_size-0xa00000, MPI_UINT8_T, rank+1, 0, MPI_COMM_WORLD);
+ MPI_Send(buf + 0x10000, (int)(mem_size - 0xa00000), MPI_UINT8_T, rank + 1, 0, MPI_COMM_WORLD);
}
else {
- MPI_Recv(buf+0x10000, mem_size-0xa00000, MPI_UINT8_T, rank-1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
+ MPI_Recv(buf + 0x10000, (int)(mem_size - 0xa00000), MPI_UINT8_T, rank - 1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
}
for(int i = 0; i < nb_blocks-1; i++) {
size_t start = shared_blocks[2*i+1];
size_t stop = shared_blocks[2*i+2];
- int comm = check_all(buf, start, stop, rank-1);
+ int comm = check_all(buf, start, stop, (uint8_t)(rank - 1));
printf("[%d] The result of the (shifted) communication check for block (0x%zx, 0x%zx) is: %d\n", rank, start, stop, comm);
}
}