Wael,

If you are simply interested in scheduler algorithms, you can also try
using user-level scheduling to test and debug your algorithm.

http://www.cs.unc.edu/~jmc/linsched/

As for getting cache measurements, you can do this with a tool like
OProfile to get performance counters on your real machine. I'd only use a
processor simulator for your study if you absolutely need it, because
schedulers should be evaluated with fairly long running experiments.

Jim Stevens
University of Maryland, College Park


> I don't know if I'd be able to give you a reasonable answer here. It is
> all
> dependent on how familiar you are with how scheduling algorithms work and
> your level of comfort with C.
>
> The latest kernel scheduler is a "tickless" scheduler which is supposed to
> be more fair (see:
> http://en.wikipedia.org/wiki/Completely_Fair_Scheduler).
> If I had to put a time frame on it, I'd say you would need to allot at
> least a few months to getting to the level where you can actually make
> changes inside the kernel and being able to test them. As far as getting a
> working new scheduler, that would probably take a few more months.
>
> You should also take into consideration the simulation aspects involved
> with testing schedulers. Typically schedulers allow applications to run
> for
> a few milliseconds before swapping them off the core. However, in
> simulation, simulating a few milliseconds of time can take quite a long
> time. It might require days or weeks of simulation before you see enough
> context switches in order to evaluate your algorithm. I don't want to try
> to discourage you, but I just want you to be fully aware that this is a
> very tough problem.
>
> On Tue, Apr 24, 2012 at 11:41 PM, wael Amr <[email protected]>
> wrote:
>
>> Hi Eng Paul,
>>
>> Thanks for your reply.
>> So would you give me an estimation of time it needs to implement a
>> scheduling algorithm in the Linux kernel(as i have very limited time)?
>>
>> Concerning the assumption that you mentioned:
>> Yes ,the assumption is correct
>>
>> Thank you for your time and help.
>> Best Regards
>> Wael Amr
>>
>>
>> On Tue, Apr 24, 2012 at 7:51 PM, Paul Rosenfeld
>> <[email protected]>wrote:
>>
>>> Is modifying the Linux kernel "easy"? No, unfortunately it is not.
>>> Modern
>>> operating systems are extremely complex and have evolved over decades
>>> to
>>> try to get the best performance possible -- the Linux kernel is no
>>> exception.
>>>
>>> When you say "thread" I'll assume you mean hardware thread, since a
>>> single threaded benchmark will be a single software thread (linux makes
>>> no
>>> distinction between a thread and a process). If this assumption is
>>> correct
>>> then it is pretty simple to pin a particular benchmark to a particular
>>> hardware thread using some OS affinity calls. You can search for
>>> "taskset"
>>> or "sched_setaffinity" to find more details.
>>>
>>> On Tue, Apr 24, 2012 at 12:08 PM, wael Amr
>>> <[email protected]>wrote:
>>>
>>>> Hi all,
>>>>
>>>>  Really many great thanks for your time and support.
>>>> As i wrote before,i need to implement scheduling algorithm for tasks
>>>> among multicore to decrease miss rate for the shared cache.
>>>> Is modifying in the linux kernel difficult and taking large time ?
>>>> or
>>>> Is it easy ?
>>>>
>>>> I am asking this question because i used SESC simulator and it took
>>>> large time to understand and modify ,then after that i found that SESC
>>>> simulator has NO multiprogramming,so i am searching for another
>>>> simulator
>>>> and i have limited time to finish my research.
>>>>
>>>> Second question about the mapping of the benchmarks to the threads:
>>>> Are the threads sharing the same benchmark ?
>>>> or
>>>> There is no sharing ,for example :
>>>> We have 5 threads and 5 benchmarks,so we can assign thread 0 to the
>>>> first benchmark,then we can assign thread 1 to the second one and so
>>>> on.
>>>>
>>>> I would appreciate if you could reply at your earliest convenience.
>>>> Thank you in advance for your help.
>>>> Best Regards
>>>> Wael Amr
>>>>
>>>> On Mon, Apr 23, 2012 at 6:58 AM, avadh patel
>>>> <[email protected]>wrote:
>>>>
>>>>>
>>>>> On Sun, Apr 22, 2012 at 8:55 PM, wael Amr
>>>>> <[email protected]>wrote:
>>>>>
>>>>>> Hi Eng.Avadh,
>>>>>>
>>>>>> Thanks a lot for your support.
>>>>>> please i have another question.
>>>>>>
>>>>>> is it possible to run this simulator on Mac OS which is unix based?
>>>>>>
>>>>>> I have never tried compiling/running Marss under Mac OS.  Though
>>>>>> QEMU
>>>>> is designed to work on all platforms but we have never tested it.
>>>>> Has anyone on mailing-list ever tried running Marss under Mac OS?
>>>>> May be you can try and report the issues/patches!!
>>>>>
>>>>> - Avadh
>>>>>
>>>>>  Thank in advance for your time and support.
>>>>>> Best Regards
>>>>>> Wael Amr
>>>>>>
>>>>>>
>>>>>> On Sun, Apr 22, 2012 at 7:03 PM, avadh patel
>>>>>> <[email protected]>wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Apr 22, 2012 at 9:29 AM, wael Amr
>>>>>>> <[email protected]>wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Really Great Thanks for your reply and support.
>>>>>>>> Actually i have a confusion .
>>>>>>>> Is the linux kernel is represented by certain class in the Marss
>>>>>>>> simulator ?
>>>>>>>> or
>>>>>>>> Do you mean the real linux kernel of the used linux platform (e.g.
>>>>>>>> ubantu ,fedora,...) as i am using MAC OS?
>>>>>>>>
>>>>>>>> Yes its a real linux kernel.  Because Marss boots a Virtual
>>>>>>>> Machine
>>>>>>> that contains a full linux distribution including a kernel.
>>>>>>> If you are not much familiar with Qemu and VM, then checkout how
>>>>>>> Qemu
>>>>>>> works.  That will give an idea what Marss simulates.
>>>>>>>
>>>>>>> - Avadh
>>>>>>>
>>>>>>>
>>>>>>>> Thank you in advance for your time.
>>>>>>>>  Thanks
>>>>>>>> Best Regards
>>>>>>>> Wael Amr
>>>>>>>>
>>>>>>>> On Sun, Apr 22, 2012 at 5:01 PM, avadh patel
>>>>>>>> <[email protected]>wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sat, Apr 21, 2012 at 9:28 AM, wael Amr
>>>>>>>>> <[email protected]
>>>>>>>>> > wrote:
>>>>>>>>>
>>>>>>>>>> Hello All,
>>>>>>>>>>
>>>>>>>>>> I am a master student and working on a research for scheduling
>>>>>>>>>> tasks among multicore platforms to decrease miss rate among
>>>>>>>>>> second level
>>>>>>>>>> shared cache.
>>>>>>>>>> So i am investigating in Marss to check if i can use Marss to
>>>>>>>>>> implement the scheduling algorithm for arranging the tasks or
>>>>>>>>>> not.
>>>>>>>>>>
>>>>>>>>>> Marss can be suitable simulator environment for your project.
>>>>>>>>>> You
>>>>>>>>> can easily setup custom linux kernel in Marss.
>>>>>>>>> Checkout this wiki page on using Marss with modified linux
>>>>>>>>> kernel:
>>>>>>>>> http://marss86.org/~marss86/index.php/Linux_Kernel_Development
>>>>>>>>>
>>>>>>>>> There is one catch that currently Marss doesn't implement MSR
>>>>>>>>> counters.  So if you are looking to use those in your project you
>>>>>>>>> might
>>>>>>>>> have to implement them or use ptlcall interface to communicate
>>>>>>>>> between
>>>>>>>>> Marss and kernel.
>>>>>>>>>
>>>>>>>>> - Avadh
>>>>>>>>>
>>>>>>>>> So please would anyone help me or give me any opinion/hint in
>>>>>>>>> this
>>>>>>>>>> point ?
>>>>>>>>>>
>>>>>>>>>> Any help will be really highly appreciated.
>>>>>>>>>>
>>>>>>>>>> Thank you in advance for time and cooperation.
>>>>>>>>>>
>>>>>>>>>> Best Regards
>>>>>>>>>> Wael Amr
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> http://www.marss86.org
>>>>>>>>>> Marss86-Devel mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> http://www.marss86.org
>>>>>>>> Marss86-Devel mailing list
>>>>>>>> [email protected]
>>>>>>>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> http://www.marss86.org
>>>>>> Marss86-Devel mailing list
>>>>>> [email protected]
>>>>>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> http://www.marss86.org
>>>> Marss86-Devel mailing list
>>>> [email protected]
>>>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> http://www.marss86.org
>> Marss86-Devel mailing list
>> [email protected]
>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>>
>>
> _______________________________________________
> http://www.marss86.org
> Marss86-Devel mailing list
> [email protected]
> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>



_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel

Reply via email to