diff --git a/src/main/java/org/apache/sysds/api/PythonDMLScript.java b/src/main/java/org/apache/sysds/api/PythonDMLScript.java
index a3e268b..62ae738 100644
--- a/src/main/java/org/apache/sysds/api/PythonDMLScript.java
+++ b/src/main/java/org/apache/sysds/api/PythonDMLScript.java
@@ -22,6 +22,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sysds.api.jmlc.Connection;
+import org.apache.sysds.conf.CompilerConfig;
 
 import py4j.GatewayServer;
 import py4j.GatewayServerListener;
@@ -56,7 +57,17 @@
 	}
 
 	private PythonDMLScript() {
-		_connection = new Connection();
+		// we enable multi-threaded I/O and operations for a single JMLC
+		// connection because the calling Python process is unlikely to run
+		// multi-threaded streams of operations on the same shared context
+		_connection = new Connection(
+			CompilerConfig.ConfigType.PARALLEL_CP_READ_TEXTFORMATS,
+			CompilerConfig.ConfigType.PARALLEL_CP_WRITE_TEXTFORMATS,
+			CompilerConfig.ConfigType.PARALLEL_CP_READ_BINARYFORMATS,
+			CompilerConfig.ConfigType.PARALLEL_CP_WRITE_BINARYFORMATS,
+			CompilerConfig.ConfigType.PARALLEL_CP_MATRIX_OPERATIONS,
+			CompilerConfig.ConfigType.PARALLEL_LOCAL_OR_REMOTE_PARFOR,
+			CompilerConfig.ConfigType.ALLOW_DYN_RECOMPILATION);
 	}
 
 	public Connection getConnection() {
@@ -108,5 +119,4 @@
 	public void serverStopped() {
 		System.out.println("GatewayServer Stopped");
 	}
-
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/apache/sysds/conf/ConfigurationManager.java b/src/main/java/org/apache/sysds/conf/ConfigurationManager.java
index 358d62e..fdc3602 100644
--- a/src/main/java/org/apache/sysds/conf/ConfigurationManager.java
+++ b/src/main/java/org/apache/sysds/conf/ConfigurationManager.java
@@ -31,24 +31,24 @@
  * NOTE: parallel execution of multiple DML scripts (in the same JVM) with different configurations  
  *       would require changes/extensions of this class. 
  */
-public class ConfigurationManager 
+public class ConfigurationManager
 {
-	/** Global cached job conf for read-only operations	*/
+	/** Global cached job conf for read-only operations */
 	private static JobConf _rJob = null; 
-	
+
 	/** Global DML configuration (read or defaults) */
 	private static DMLConfig _dmlconf = null; 
-	
+
 	/** Local DML configuration for thread-local config updates */
 	private static ThreadLocalDMLConfig _ldmlconf = new ThreadLocalDMLConfig();
-	
-    /** Global compiler configuration (defaults) */
-    private static CompilerConfig _cconf = null;
-	
-    /** Local compiler configuration for thead-local config updates */
-    private static ThreadLocalCompilerConfig _lcconf = new ThreadLocalCompilerConfig();
-    
-    //global static initialization
+
+	/** Global compiler configuration (defaults) */
+	private static CompilerConfig _cconf = null;
+
+	/** Local compiler configuration for thead-local config updates */
+	private static ThreadLocalCompilerConfig _lcconf = new ThreadLocalCompilerConfig();
+
+	//global static initialization
 	static {
 		_rJob = new JobConf();
 		
@@ -59,13 +59,13 @@
 	}
 	
 	
-    /**
-     * Returns a cached JobConf object, intended for global use by all operations 
-     * with read-only access to job conf. This prevents to read the hadoop conf files
-     * over and over again from classpath. However, 
-     * 
-     * @return the cached JobConf
-     */
+	/**
+	 * Returns a cached JobConf object, intended for global use by all operations 
+	 * with read-only access to job conf. This prevents to read the hadoop conf files
+	 * over and over again from classpath. However, 
+	 * 
+	 * @return the cached JobConf
+	 */
 	public static JobConf getCachedJobConf() {
 		return _rJob;
 	}
