Project

General

Profile

Task #4638

Allow manual specification of experiment module in ExperimentManager

Added by Alexander Lane almost 2 years ago. Updated almost 2 years ago.

Status:
In Progress
Priority:
Normal
Category:
-
Target version:
-
Start date:
06/18/2018
Due date:
% Done:

0%

Estimated time:

Description

Presently, ExperimentManager is hard coded to only check the ndn.experiments module for experiments, which combined with the fact it cannot be easily inherited from increases the amount of unnecessary duplication in derivative code. The module should be restructured such that this can be changed at runtime.

History

#1

Updated by Ashlesh Gawande almost 2 years ago

Is this issue related to porting nfd integration tests? I don't see usage on the gerrit change.

Another thing is that result directory is made specifically for NLSR experiments - we should also remove that to make mini-ndn more general.

#2

Updated by Alexander Lane almost 2 years ago

Ashlesh Gawande wrote:

Is this issue related to porting nfd integration tests? I don't see usage on the gerrit change.

Another thing is that result directory is made specifically for NLSR experiments - we should also remove that to make mini-ndn more general.

This is actually something which effects Mini-NDN-Wifi most directly, although now that you mention it would be excellent to use it with the NFD integration tests.

And agreed, I'll tweak that.

#3

Updated by Ashlesh Gawande almost 2 years ago

How is this used Mini-NDN-Wifi?
Can't we just store all the experiments in sub folders within ndn.experiments and recurse through it?
Where will the experiment manager be set - in bin/minindn? Would it be set from a command line argument?

#4

Updated by Alexander Lane almost 2 years ago

Ashlesh Gawande wrote:

How is this used Mini-NDN-Wifi?
Can't we just store all the experiments in sub folders within ndn.experiments and recurse through it?
Where will the experiment manager be set - in bin/minindn? Would it be set from a command line argument?

In order to accomplish the task of separating out the Mini-NDN-Wifi and Mini-NDN libraries, which will decrease maintenance time significantly, we would necessarily need to have the Mini-NDN-Wifi files in a separate module which does not overlap with that of Mini-NDN. The downside is that experiment_manger presently hardcodes imports to be from Mini-NDN (https://github.com/named-data/mini-ndn/blob/master/ndn/experiment_manager.py#L42), which means that we are forced to create a duplicate (or wrapper class) in Mini-NDN-Wifi to change this one line. This adds maintenance burden for any changes made to experiment_manager or any other derivative code.

In regards to your second point, this would require redistributing Mini-NDN-Wifi experiments with vanilla Mini-NDN or redistributing modified Mini-NDN code with Mini-NDN-wifi (egg module files are compressed and cannot be easily altered).

To your third point, the former seems most likely. A command line option would be doable potentially but would need to be structured so it didn't cause regressions when interacting with other arguments.

Also available in: Atom PDF