[MINOR] Federated ops count in stats
Closes #1022.
diff --git a/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedData.java b/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedData.java
index 2c5f902..5e83dc2 100644
--- a/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedData.java
+++ b/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedData.java
@@ -36,6 +36,7 @@
import org.apache.sysds.conf.DMLConfig;
import org.apache.sysds.runtime.DMLRuntimeException;
import org.apache.sysds.runtime.controlprogram.federated.FederatedRequest.RequestType;
+import org.apache.sysds.utils.Statistics;
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
diff --git a/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedRequest.java b/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedRequest.java
index 5880851..5618d36 100644
--- a/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedRequest.java
+++ b/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedRequest.java
@@ -25,6 +25,7 @@
import java.util.List;
import org.apache.sysds.api.DMLScript;
+import org.apache.sysds.utils.Statistics;
public class FederatedRequest implements Serializable {
private static final long serialVersionUID = 5946781306963870394L;
@@ -57,6 +58,7 @@
}
public FederatedRequest(RequestType method, long id, List<Object> data) {
+ Statistics.incFederated(method);
_method = method;
_id = id;
_data = data;
diff --git a/src/main/java/org/apache/sysds/utils/Statistics.java b/src/main/java/org/apache/sysds/utils/Statistics.java
index cab22cd..0a6ec38 100644
--- a/src/main/java/org/apache/sysds/utils/Statistics.java
+++ b/src/main/java/org/apache/sysds/utils/Statistics.java
@@ -37,6 +37,7 @@
import org.apache.sysds.hops.OptimizerUtils;
import org.apache.sysds.runtime.controlprogram.caching.CacheStatistics;
import org.apache.sysds.runtime.controlprogram.context.SparkExecutionContext;
+import org.apache.sysds.runtime.controlprogram.federated.FederatedRequest.RequestType;
import org.apache.sysds.runtime.instructions.Instruction;
import org.apache.sysds.runtime.instructions.InstructionUtils;
import org.apache.sysds.runtime.instructions.cp.FunctionCallCPInstruction;
@@ -135,6 +136,13 @@
private static final LongAdder lTotalLix = new LongAdder();
private static final LongAdder lTotalLixUIP = new LongAdder();
+ // Federated stats
+ private static final LongAdder federatedReadCount = new LongAdder();
+ private static final LongAdder federatedPutCount = new LongAdder();
+ private static final LongAdder federatedGetCount = new LongAdder();
+ private static final LongAdder federatedExecuteInstructionCount = new LongAdder();
+ private static final LongAdder federatedExecuteUDFCount = new LongAdder();
+
private static LongAdder numNativeFailures = new LongAdder();
public static LongAdder numNativeLibMatrixMultCalls = new LongAdder();
public static LongAdder numNativeConv2dCalls = new LongAdder();
@@ -376,6 +384,28 @@
parforMergeTime += time;
}
+ public static synchronized void incFederated(RequestType rqt){
+ switch (rqt) {
+ case READ_VAR:
+ federatedReadCount.increment();
+ break;
+ case PUT_VAR:
+ federatedPutCount.increment();
+ break;
+ case GET_VAR:
+ federatedGetCount.increment();
+ break;
+ case EXEC_INST:
+ federatedExecuteInstructionCount.increment();
+ break;
+ case EXEC_UDF:
+ federatedExecuteUDFCount.increment();
+ break;
+ default:
+ break;
+ }
+ }
+
public static void startCompileTimer() {
if( DMLScript.STATISTICS )
compileStartTime = System.nanoTime();
@@ -989,6 +1019,15 @@
sb.append("ParFor result merge time:\t" + String.format("%.3f", ((double)getParforMergeTime())/1000) + " sec.\n");
sb.append("ParFor total update in-place:\t" + lTotalUIPVar + "/" + lTotalLixUIP + "/" + lTotalLix + "\n");
}
+ if( federatedReadCount.longValue() > 0){
+ sb.append("Federated (Reads,Puts,Gets) :\t(" +
+ federatedReadCount.longValue() + "," +
+ federatedPutCount.longValue() + "," +
+ federatedGetCount.longValue() + ")\n");
+ sb.append("Federated Execute (In,UDF) :\t(" +
+ federatedExecuteInstructionCount.longValue() + "," +
+ federatedExecuteUDFCount.longValue() + ")\n");
+ }
sb.append("Total JIT compile time:\t\t" + ((double)getJITCompileTime())/1000 + " sec.\n");
sb.append("Total JVM GC count:\t\t" + getJVMgcCount() + ".\n");