Find the answer to your Linux question:
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.
  1. #1
    Just Joined!
    Join Date
    Sep 2012
    Posts
    5

    Lightbulb 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

  2. #2
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, in Chicago, or in a galaxy far, far away.
    Posts
    11,755
    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!

  3. #3
    Just Joined!
    Join Date
    Sep 2012
    Posts
    5
    Thank you Sir for your support, your idea will help me in my project.

  4. $spacer_open
    $spacer_close

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •