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
