## 1 Introduction
### Motivations, Main Contributions, and Organization of the Paper  
Barring toy examples, it may be very challenging to plan online \"wise\" decisions about which tasks should be offloaded and towards which computing nodes, especially when the executions of the considered applications must be in _real time_, so that hard upper limits are present on the overall computing-plus-communication delays. Roughly speaking, the challenging issue stems from two main factors. First, since the combination of offloading decisions generally increases exponentially with the number of tasks of the considered DAG, exhaustive searches quickly become very time consuming, or even infeasible. Second, it is challenging to calculate analytically in closed-form the execution time of an application described by a DAG with a general (possibly, pseudo-random) topology, especially when the communication latencies must be also accounted for. In fact, the execution time generally depends on many factors like, for example, the parallelism of the Mobile-Cloud-Fog computing nodes, their (possibly, scalable) computing speeds, the number of virtual cores available at the Cloud and Fog nodes, as well as the available (and possibly scalable) inter-node network bandwidths, just to name a few. Hence, to enable an energy-efficient real-time exploitation of the mobile technological platform of Figure 1, we need a flexible evaluation environment for the dynamic test of different task offloading and resource allocation strategies under programmable (e.g., settable by the user) models for the energy-delay profiles of the virtualized computing and network blocks composing the reference architecture of Figure 1. The hardware implementation of the 5G-supported Mobile-Fog-Cloud test-bed, although valuable, could be too cumbersome, and (moreover) it could not guarantee a repeatable and controllable performance environment. Motivated by these considerations, in this paper, we present the general architecture and test the main functionalities of the _VirtFogSim_ package. It is a new software toolbox that allows:  
* simulation on parallel hardware machines;
* dynamic optimization;
* dynamic tracking;
* comparison;
* graphic rendering through an ad-hoc-designed Graphic Use Interface (GUI),  
Figure 2: A toy example illustrating the energy-saving capability of multi-tiered Mobile-Fog-Cloud computing platforms that employ both WiFi and Cellular links, in order to connect the computing nodes. of the energy-delay performances of heuristic and meta-heuristic strategies for _joint_ task offloading and _dynamic_ resource allocation of application DAGs with _general_ topologies over the three-tiered _networked virtualized_ computing platform of Figure 1, under hard _real-time_ constraints on the overall (i.e., computing-plus-communication) execution times. _VirtFogSim_ allows the users to:  
* test their desired application DAGs by customizing the simulation environment of Figure 1 through the setting of the 67 input parameters of the simulator package;
* track dynamically the energy-delay DAG performance against abrupt (possibly, unpredictable) changes of the simulated environment of Figure 1, like mobility-induced changes of the available up/down Cellular-WiFi bandwidths;
* optimize the obtained DAG performance against a number of metrics, like total consumed energy, network consumed energy, network bandwidth, computing frequency, and execution delays, just to name a few. On the basis of an overview of the related work available in the open literature (see the next Section 2), we anticipate that the major peculiar features of the proposed _VirtFogSim_ toolbox are the following ones:  
* it allows the numerical evaluation of the _delay-constrained_ minimization of the overall computing-plus-network energy consumed by the execution of the input DAG.