Results 1 to 3 of 3
Dear Sir,
I am mtech student of IITkgp,India working on a project i.e. adapting linux kernel for scalable multi core architecture, I found that Linux does not consider data independence ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 02-02-2013 #1Just Joined!
- Join Date
- Sep 2012
- Posts
- 5
adapting linux kernel for future multi core architecture
Dear Sir,
I am mtech student of IITkgp,India working on a project i.e. adapting linux kernel for scalable multi core architecture, I found that Linux does not consider data independence in a program that runs on linux. I mean if a c program consists of 2 independents loops and there are 2 or more cores then linux will not schedule the two loops on two different cores because linux does not consider data independence. Rather linux will schedule the program on one core only. But if openmp tools are used then it may be scheduled on two cores. I think this improvement can be made to linux kernel. Also I find current linux scheduling is CFS scheduling with group scheduling. I find there is one better scheduler by name Rate Based Earliest Deadline Scheduler(RBED) for future multi core architecture. What's your view on these improvements?
thanking you,
Sachin Agarwalla
- 02-05-2013 #2Linux Guru
- Join Date
- Apr 2009
- Location
- I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
- Posts
- 10,142
These are more compiler than kernel issues. The compiler could thread the loops if its analysis indicates that there is no interdependence involved. Honestly, the kernel doesn't care. Example, look at the code for gnu make on Linux. You can specify the jobs option to multi-thread the compilation, and make will determine where the interdependencies are involved. There is no reason why the compiler could not do this on code. It isn't simple, and I think there are advanced compilers that can do that with the appropriate options. In fact, gcc can do this now (I'm running 4.4.4-13). From the gcc man page on compiler options:
Code:-ftree-parallelize-loops=n Parallelize loops, i.e., split their iteration space to run in n threads. This is only possible for loops whose iterations are independent and can be arbitrarily reordered. The optimization is only profitable on multiprocessor machines, for loops that are CPU-intensive, rather than constrained e.g. by memory bandwidth. This option implies -pthread, and thus is only supported on targets that have support for -pthread.Sometimes, real fast is almost as good as real time.
Just remember, Semper Gumbi - always be flexible!
- 02-11-2013 #3Just Joined!
- Join Date
- Sep 2012
- Posts
- 5
Thank you Sir for your support, your idea will help me in my project.


Reply With Quote
