Comments (9)
Hello Sir,
Merry Christmas and Happy new year! I have able to solve the problem during running HR_EDGE_CACHE', 'HR_ON_PATH'
. But when I try to run 'HR_CLUSTER'
on real topologies like 'GEANT', 'WIDE','GARR' , an error shows ValueError: There are nodes not labelled with cluster information
. Should I run this on different topologies?
How can I resolve it, sir?
from icarus.
Hi Ashim, glad to hear you were able to solve your first problem.
The reason for this issue is that, when using HR_CLUSTER
as a strategy, you also need an algorithm that assigns cache nodes to clusters. See sec. 4.C of this paper. That error message emerged because the HR_CLUSTER
strategy expects the topology to include data telling which cache node belongs to each cluster, but it didn't.
To do this, you need to use a cache placement algorithm that also assigns cache nodes to clusters. You can create one of your own or use can use the CLUSTERED_HASHROUTING
cache placement algorithm implemented here:
icarus/icarus/scenarios/cacheplacement.py
Lines 294 to 351 in 1f80c39
The design of that algorithm is described in Sec. 7.E of this paper.
You can use that cache placement algorithm with every topology.
Hope this helps, please let me know if you have any further issue.
from icarus.
Thank you for replying, Sir! It works!
Actually, I want to compare and plot all available hash routing strategies in a single experiment. So, for HR_CLUSTER
, I should declare default['cache_placement']['name'] = 'CLUSTERED_HASHROUTING'
and for other hash routing strategies default['cache_placement']['name'] = 'UNIFORM'
. How can I handle this conflict in a single experiment?
Sorry for my endless question :(
from icarus.
You can do it. There are two ways to do it, as far as I can tell.
- You can use the
CLUSTERED_HASHROUTING
cache placement everywhere, also on non-hashrouting strategies. It should work fine. If you setdefault['cache_placement']['policy'] = 'node_const'
, that effectively has the same behavior of theUNIFORM
cache placement policy when used with non-hashrouting strategies. - The configuration file is interpreted as standard Python code, so you can use any Python statements. You could add a conditional to use
CLUSTERED_HASHROUTING
for hashrouting policies andUNIFORM
for others. That would look like this (you will need to adapt it for your specific config file):
if experiment['strategy']['name'] == "HR_CLUSTER":
experiment['cache_placement']['name'] = 'CLUSTERED_HASHROUTING'
else:
experiment['cache_placement']['name'] = 'UNIFORM'
from icarus.
Sir!
Thank you for answering with great patience. I am still uncovering Icarus and trying to make the best use of it!
from icarus.
I am closing this issue for now. If you have any further issues, please feel free to reopen it.
from icarus.
Hello Sir!
How can I find these two things from icarus:
- Popularity of content
p
(out of 1.0) at any timet
- Available free Cache size
c
(out of 1.0) of a Cache Noden
at any timet
from icarus.
Hi Ashim,
- It depends on the workload you are using. If you are using the stationary workload, then the popularity of each item is constant over the simulation. If you are using a trace driven workload, then you need to measure it from the trace. If you need to compute the popularity online, i.e., you want your strategy to learn the popularity while the simulation is being executed, you will need to implement code to do that. There is no function to get that information at the moment.
- There's no method to get the current free amount of cache, typically because in simulations, cache is expected to be always filled at steady-state. If you need to compute this online and make it accessible to your strategy, the way I would go about would be to add a method to the NetworkView class that returns that. I think it shouldn't be too difficult to implement.
from icarus.
-
Yes, Sir. I am using
stationary workload
(means content popularity is Zipf-distributed), then maybe the popularity of each item is constant over the simulation. But how I can find thatpopularity value
(maybe constant overtime) for some contenti
at any timet
duringj
th request? For that, if no function is available, can you provide any guidance for implementation? -
Can you be more specific about this implementation,Sir?
from icarus.
Related Issues (20)
- Is it possible to run the workload in parallel? HOT 5
- To make content-based replication HOT 3
- Error of running the examples HOT 2
- Strategy extension HOT 1
- Problem during Installing icarus HOT 5
- Problems with cacheplacement scenario (DEGREE and BETWEENNESS_CENTRALITY methods) HOT 2
- Run simulations with different content placement algorithms HOT 4
- How to generate a dataset for content popularity and run simulations with our own algorithm HOT 6
- Issue while running the simulation HOT 1
- Inquiry regarding the Icarus simulator HOT 3
- MacOS : dlopen ( gpivpi.vpl, 0x0009): symbol not found in flat namespace '_PyErr_Print'. #3018 HOT 2
- Support fora assign statements 0.9.x HOT 1
- Support for assign statements HOT 1
- always_ff, always_comb HOT 1
- Error display when increasing some parameters HOT 2
- Error when using PERFECT_LFU cache policy and some strategy along with ttl_cache function HOT 2
- How to simulate caching strategies using fog computing?
- Hi, is there a way to make the cache multi-tiered (have multiple tiers ram, ssd ...)?
- How to run "numeric_cache_hit_ratio_2_layers"
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from icarus.