diff --git a/hello.c b/hello.c
new file mode 100644
index 0000000000000000000000000000000000000000..ea1ce89d333da09e6a359653ea4db0c43368d4a9
--- /dev/null
+++ b/hello.c
@@ -0,0 +1,38 @@
+// Author: Wes Kendall
+// Copyright 2011 www.mpitutorial.com
+// This code is provided freely with the tutorials on mpitutorial.com. Feel
+// free to modify it for your own use. Any distribution of the code must
+// either provide a link to www.mpitutorial.com or keep this header intact.
+//
+// An intro MPI hello world program that uses MPI_Init, MPI_Comm_size,
+// MPI_Comm_rank, MPI_Finalize, and MPI_Get_processor_name.
+//
+#include <mpi.h>
+#include <stdio.h>
+
+int main(int argc, char** argv) {
+  // Initialize the MPI environment. The two arguments to MPI Init are not
+  // currently used by MPI implementations, but are there in case future
+  // implementations might need the arguments.
+  MPI_Init(NULL, NULL);
+
+  // Get the number of processes
+  int world_size;
+  MPI_Comm_size(MPI_COMM_WORLD, &world_size);
+
+  // Get the rank of the process
+  int world_rank;
+  MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
+
+  // Get the name of the processor
+  char processor_name[MPI_MAX_PROCESSOR_NAME];
+  int name_len;
+  MPI_Get_processor_name(processor_name, &name_len);
+
+  // Print off a hello world message
+  printf("Hello world from processor %s, rank %d out of %d processors\n",
+         processor_name, world_rank, world_size);
+
+  // Finalize the MPI environment. No more MPI calls can be made after this
+  MPI_Finalize();
+}