diff --git a/omp_hello b/omp_hello
new file mode 100755
index 0000000000000000000000000000000000000000..5dcf1592072d74ce9648e49cd1eb71f01e583dbe
Binary files /dev/null and b/omp_hello differ
diff --git a/omp_hello.c b/omp_hello.c
new file mode 100644
index 0000000000000000000000000000000000000000..9a0b6db1141a7b701ae05772dbd5e5f27eaecc3b
--- /dev/null
+++ b/omp_hello.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <omp.h>
+
+void Hello(void); /* Thread function */
+
+int main(int argc, char *argv[]) {
+	int thread_count = strtol(argv[1], NULL, 10);
+	
+	#pragma omp parallel num_threads(thread_count)
+	Hello();
+	
+	return 0;
+}
+
+void Hello(void) {
+	int my_rank = omp_get_thread_num();
+	int thread_count = omp_get_num_threads();
+	
+	printf("Hello from thread %d of %d\n",
+		my_rank, thread_count);
+}