GithubHelp home page GithubHelp logo

maximecheramy / simso Goto Github PK

View Code? Open in Web Editor NEW
76.0 76.0 50.0 933 KB

Simulator of multiprocessor real-time scheduling

Home Page: https://maximecheramy.github.io/simso/

License: Other

Python 99.77% Makefile 0.23%
real-time scheduling simulator

simso's People

Contributors

maximecheramy avatar pehladik avatar scriptopathe avatar steveej avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

simso's Issues

How to execute the available schedulers

Hello Cheramy,

I'm a computer science student and for now, I'm using macOS to write python codes. I'm already installed both SimSo, but I would like to know, how to execute one of the available schedulers after that. In fact, I have no idea how to execute SimSo. It was installed using the following command: pip install simso simsogui.

Thanks !

BF scheduler: won't correctly schedule the example in the literature

The taskset is https://gist.github.com/steveeJ/10e5bebaf6fc7387d2ee

Running the taskset as it is doesn't result in a completion of the algorithm, with the error message printed:

("Warning: didn't allowed enough time to last task.", 1)

If you tick the Abort on miss checkbox for the tasks it will eventually finish, but the CPU load appears to be 0.933 per CPU. This is wrong according to the taskset, which equals a full load on all CPUs.

BF Scheduler

Hello everyone,

Today Im trying to simulate some of the available schedulers, but only one it is not working (BF), returning the following message:

screen shot 2018-02-06 at 5 37 06 pm
The simulation using BF scheduler

screen shot 2018-02-06 at 5 40 34 pm
The simulation using EKG scheduler

How to simulate using BF Algorithm ?

umin constraint satisfaction not guaranteed

u = target_util - total_util

In some cases, umin constraint could be unsatisfied. I suggest to add :

if u < umin: raise RuntimeWarning( 'Minimal task utilization constraint umin>=%d unsatisfied for one task'.format({umin}))

To raise an exception informing whoever needs it that the constraint has been violated, but this would need to handle it...

A less intrusive workaround would be to add a comment in the function (in the documentation) to inform people about this behavior.

Best regards,
Jean Ibarz

Documentation not available.

Hello Everyone! I was looking to use this simulator for my research project but the documentation and project links given in the readme are broken. Please help me get hold of the documentation and stuff.

Install instructions don't work.

I'm following the documentation instructions on this depository but they simply don't work. The instructions clearly state type “python setup.py install” to install SimSo. Those instructions are a TOTAL FAIL. There is no setup.py file anywhere in any of those directories... (or am I'm just doing it wrong?)

Any hints on how to go from files stored in directories to compilation and execution? Is there a suggested addendum to /docs/introduction.rst in this repository to something accurate and functional?

Many thanks, Zip.

Note: I'm working in Ubuntu Desktop and the key directories (Simso, SimsoGui, SimPy, numpy and PyQt4) located at .local/lib/python2.7/site-packages

ETM should expose their requirements

The various ETM require different informations, for instance, the Cache Model needs the SDP, API, etc, the ACET model requires the std dev and the average duration, the fixed penalty requires a preemption cost...

Each ETM should contains a list of parameters that are required, with their type. However, this is not easy as it sounds: sometimes it's a task field or a simulation field, or a processor field, but sometimes it can even be a new kind of data such as the description of the caches.

A first step could be to add several lists of required fields for the tasks, processors and the simulation. This will ease the work on the UI side.

Cache partitioning

Hey,
Greater simulator. I was wondering if there is a cache partitioning feature where the cache can be partitioned across tasks or cores during execution to reduce interference. If not, is it possible to add scripts to enable such cache partitioning. Thanks!
Saad

[French] Critical bug on homogeneous system

Use configuration file to reproduce the bug.

Description in french only
Il me semble qu'il y a un problème majeur mis en lumière par les vitesses : la valeur job.cpu semble fausse lorsque l'on calcule la update_executed.
Cela peut-être mis en avant en ajoutant ligne 16 de WCET.py la ligne suivante :
job.name, job.cpu.name, self.sim.now() - self.on_execute_date[job]))
(https://github.com/MaximeCheramy/simso/blob/master/simso/core/etm/WCET.py#L16)
Avant d'aller plus loin, je voudrais préciser que j'ai pris toutes les précautions nécessaires : je débug dans une version vierge de toute modification de ma part.

Le fait que cette valeur soit fausse a un réel impact sur le fonctionnement. Pour illustrer le problème, je fournis une configuration ainsi qu'un scheduler.
Le scheduler est particulièrement naïf : il ne marche qu'avec deux tâches & deux processeurs, assigne la première au premier processeur et la seconde au second. Simplement : à la moitié de l'avancé d'une tâche, il inverse les tâches de processeur.
La configuration utilise le scheduler fourni, en WCET, avec deux processeurs (un à la vitesse 1.0, 0.2) et deux tâches (D=P=10, WCET=6).
Le système est schedulable, et de charge 100% : une tâche passe 5 unités de temps sur un processeur de vitesse maximale, et 5 unités de temps sur un processeur 80% plus lent : 5x1 + 5x0.20 = 6.

Pourtant, le chronographe montre qu'il en est tout autre et que certaines tâches finissent en 6 unités de temps. Si le log (L16 dans WCET) indiqué à été ajouté : on voit bien qu'à 5ms, le calcul est fait deux fois avec le processeur CPU 1 alors que Task 2_1 était sur le processeur CPU 2.

old_config_bug.zip

Gantt crashes

Whenever I try to open the Gantt chart the program crashes.

Specs:
Ubuntu 22.04 LTS
Python 3.10.4
SimSo 0.8.5
PyQtWebEngine 5.15.5

Trace:

Traceback (most recent call last):
File "/home/jorge/.local/lib/python3.10/site-packages/simsogui/SimulatorWindow.py", line 210, in showGantt
self.main_tab.currentWidget().showGantt()
File "/home/jorge/.local/lib/python3.10/site-packages/simsogui/SimulationTab.py", line 106, in showGantt
self._gantt = create_gantt_window(self._model)
File "/home/jorge/.local/lib/python3.10/site-packages/simsogui/Gantt.py", line 427, in create_gantt_window
return Gantt(sim, (start_date, end_date, selected_items))
File "/home/jorge/.local/lib/python3.10/site-packages/simsogui/Gantt.py", line 403, in init
canvas = GanttCanvas(sim, conf)
File "/home/jorge/.local/lib/python3.10/site-packages/simsogui/Gantt.py", line 73, in init
self.plot()
File "/home/jorge/.local/lib/python3.10/site-packages/simsogui/Gantt.py", line 81, in plot
self._update()
File "/home/jorge/.local/lib/python3.10/site-packages/simsogui/Gantt.py", line 372, in _update
self.plot_gantt(
File "/home/jorge/.local/lib/python3.10/site-packages/simsogui/Gantt.py", line 234, in plot_gantt
self.plot_graph(qp, processor.name, start_date, end_date, step,
File "/home/jorge/.local/lib/python3.10/site-packages/simsogui/Gantt.py", line 114, in plot_graph
qp.drawText(x + convX(i - start_date) - fw // 2,
TypeError: arguments did not match any overloaded call:
drawText(self, Union[QPointF, QPoint], str): argument 1 has unexpected type 'float'
drawText(self, QRectF, int, str): argument 1 has unexpected type 'float'
drawText(self, QRect, int, str): argument 1 has unexpected type 'float'
drawText(self, QRectF, str, option: QTextOption = QTextOption()): argument 1 has unexpected type 'float'
drawText(self, QPoint, str): argument 1 has unexpected type 'float'
drawText(self, int, int, int, int, int, str): argument 1 has unexpected type 'float'
drawText(self, int, int, str): argument 1 has unexpected type 'float'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.