elementary.c 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include <mpi.h>
  2. #include <stdio.h>
  3. #include <signal.h>
  4. #include <unistd.h>
  5. #include <stdlib.h>
  6. void handle_sigterm(int signum) {
  7. printf("Received SIGTERM (%d).\n", signum);
  8. exit(EXIT_SUCCESS);
  9. }
  10. void handle_sigint(int signum) {
  11. printf("Received SIGINT (%d).\n", signum);
  12. exit(EXIT_SUCCESS);
  13. }
  14. int main() {
  15. if (signal(SIGTERM, handle_sigterm) == SIG_ERR) {
  16. perror("Erreur lors de l'installation du gestionnaire de signal");
  17. return EXIT_FAILURE;
  18. }
  19. if (signal(SIGINT, handle_sigint) == SIG_ERR) {
  20. perror("Erreur lors de l'installation du gestionnaire de signal pour SIGINT");
  21. return EXIT_FAILURE;
  22. }
  23. MPI_Init(NULL, NULL);
  24. // Get the number of processes
  25. int world_size;
  26. MPI_Comm_size(MPI_COMM_WORLD, &world_size);
  27. // Get the rank of the process
  28. int world_rank;
  29. MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
  30. // Get the name of the processor
  31. char processor_name[MPI_MAX_PROCESSOR_NAME];
  32. int name_len;
  33. MPI_Get_processor_name(processor_name, &name_len);
  34. // Print off a hello world message
  35. printf("Hello world from processor %s, rank %d out of %d processors\n",
  36. processor_name, world_rank, world_size);
  37. printf("Program is running. PID: %d\n", getpid());
  38. // Simulation d'une tâche en cours d'exécution
  39. while (1) {
  40. // Votre code ici...
  41. // Ajoutez une pause pour éviter une utilisation intensive du processeur
  42. sleep(1);
  43. }
  44. MPI_Finalize();
  45. return EXIT_SUCCESS;
  46. }