diff --git a/OpenMP/mppi.c b/OpenMP/mppi.c
new file mode 100644
index 0000000000000000000000000000000000000000..430f23c0a6e451f04b002a88adf8cb1f3c1ee058
--- /dev/null
+++ b/OpenMP/mppi.c
@@ -0,0 +1,36 @@
+/*
+* mppi.c
+* Neil Gershenfeld 6/21/19
+* OpenMPI pi calculation benchmark
+* pi = 3.14159265358979323846
+*/
+
+#include <stdio.h>
+#include <time.h>
+#include <omp.h>
+
+#define NPTS 1000000000
+
+double pi;
+
+void main() {
+   int i;
+   printf("%d\n",omp_get_max_threads());
+   double a,b,c,dt,mflops;
+   struct timespec tstart,tend;
+   clock_gettime(CLOCK_REALTIME,&tstart);
+   a = 0.5;
+   b = 0.75;
+   c = 0.25;
+   pi = 0;
+   pi = 0;
+   #pragma omp parallel
+   #pragma omp for reduction(+:pi)
+   for (i = 1; i <= NPTS; ++i)
+      pi += a/((i-b)*(i-c));
+   clock_gettime(CLOCK_REALTIME,&tend);
+   dt = (tend.tv_sec+tend.tv_nsec/1e9)-(tstart.tv_sec+tstart.tv_nsec/1e9);
+   mflops = NPTS*5.0/(dt*1e6);
+   printf("NPTS = %d, pi = %f\n",NPTS,pi);
+   printf("time = %f, estimated MFlops = %f\n",dt,mflops);
+   }