diff --git a/examples/mpi/CMakeLists.txt b/examples/mpi/CMakeLists.txt
index cc1f2bca7c29cd4123efbad5ba822fb30e559544..b42a251d180ef943e5fdd0315a1d5ff959d14b3a 100644
--- a/examples/mpi/CMakeLists.txt
+++ b/examples/mpi/CMakeLists.txt
@@ -5,4 +5,7 @@ add_executable(testMpi testMpi.cpp)
 target_link_libraries(testMpi PRIVATE xacc::xacc)
 
 add_executable(qaoa_mpi qaoa_mpi.cpp)
-target_link_libraries(qaoa_mpi PRIVATE xacc::xacc)
\ No newline at end of file
+target_link_libraries(qaoa_mpi PRIVATE xacc::xacc)
+
+add_executable(deutsch_jozsa deutsch_jozsa.cpp)
+target_link_libraries(deutsch_jozsa PRIVATE xacc::xacc)
\ No newline at end of file
diff --git a/examples/mpi/deutsch_jozsa.cpp b/examples/mpi/deutsch_jozsa.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..9bbcda52cf1f2ae90e2f371cfc8b55c80b7cb06a
--- /dev/null
+++ b/examples/mpi/deutsch_jozsa.cpp
@@ -0,0 +1,107 @@
+#include "xacc.hpp"
+
+int main(int argc, char **argv) {
+  // Initialize the XACC Framework
+  xacc::Initialize(argc, argv);
+  xacc::set_verbose(true);
+  auto compiler = xacc::getCompiler("staq");
+  auto circ = compiler
+                  ->compile(R"(OPENQASM 2.0;
+include "qelib1.inc";
+qreg q[17];
+creg c[16];
+x q[16];
+h q[0];
+h q[1];
+h q[2];
+h q[3];
+h q[4];
+h q[5];
+h q[6];
+h q[7];
+h q[8];
+h q[9];
+h q[10];
+h q[11];
+h q[12];
+h q[13];
+h q[14];
+h q[15];
+h q[16];
+x q[0];
+x q[2];
+x q[4];
+x q[6];
+x q[8];
+x q[10];
+x q[12];
+x q[14];
+cx q[0],q[16];
+cx q[1],q[16];
+cx q[2],q[16];
+cx q[3],q[16];
+cx q[4],q[16];
+cx q[5],q[16];
+cx q[6],q[16];
+cx q[7],q[16];
+cx q[8],q[16];
+cx q[9],q[16];
+cx q[10],q[16];
+cx q[11],q[16];
+cx q[12],q[16];
+cx q[13],q[16];
+cx q[14],q[16];
+cx q[15],q[16];
+x q[0];
+x q[2];
+x q[4];
+x q[6];
+x q[8];
+x q[10];
+x q[12];
+x q[14];
+h q[0];
+h q[1];
+h q[2];
+h q[3];
+h q[4];
+h q[5];
+h q[6];
+h q[7];
+h q[8];
+h q[9];
+h q[10];
+h q[11];
+h q[12];
+h q[13];
+h q[14];
+h q[15];
+measure q[0] -> c[0];
+measure q[1] -> c[1];
+measure q[2] -> c[2];
+measure q[3] -> c[3];
+measure q[4] -> c[4];
+measure q[5] -> c[5];
+measure q[6] -> c[6];
+measure q[7] -> c[7];
+measure q[8] -> c[8];
+measure q[9] -> c[9];
+measure q[10] -> c[10];
+measure q[11] -> c[11];
+measure q[12] -> c[12];
+measure q[13] -> c[13];
+measure q[14] -> c[14];
+measure q[15] -> c[15];
+)")
+                  ->getComposites()[0];
+  std::cout << "HOWDY:\n" << circ->toString() << "\n";
+  auto qpu = xacc::getAccelerator("tnqvm:exatn-mps", {{"shots", 2}});
+  auto qubitReg = xacc::qalloc(17);
+  qpu->execute(qubitReg, circ);
+  qubitReg->print();
+
+  // Finalize the XACC Framework
+  xacc::Finalize();
+
+  return 0;
+}