Hama
  1. Hama
  2. HAMA-543

Make best effort to start BSP Task on the host where the input split is located.

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.4.0
    • Fix Version/s: 0.5.0
    • Component/s: bsp core
    • Labels:
      None

      Description

      Currently, BSP Task is not scheduled on the host that has the input split stored by HDFS. BSP Task scheduler should make an attempt to start the task on the host that has the input split located on it.

        Issue Links

          Activity

          Edward J. Yoon made changes -
          Resolution Fixed [ 1 ]
          Status Open [ 1 ] Resolved [ 5 ]
          Hide
          Edward J. Yoon added a comment -

          Test passed on my 3 racks Hama cluster.

          I've just committed this to TRUNK. Thanks Suraj!

          If there's additional ideas, Please open new JIRA ticket.

          Show
          Edward J. Yoon added a comment - Test passed on my 3 racks Hama cluster. I've just committed this to TRUNK. Thanks Suraj! If there's additional ideas, Please open new JIRA ticket.
          Hide
          ChiaHung Lin added a comment -

          Patch looks ok.

          Show
          ChiaHung Lin added a comment - Patch looks ok.
          Hide
          Edward J. Yoon added a comment -

          Release processing seems take some time. I prefer to commit all submitted patches.

          Show
          Edward J. Yoon added a comment - Release processing seems take some time. I prefer to commit all submitted patches.
          Thomas Jungblut made changes -
          Fix Version/s 0.5.0 [ 12316942 ]
          Fix Version/s 0.6.0 [ 12319740 ]
          Affects Version/s 0.4.0 [ 12316526 ]
          Affects Version/s 0.6.0 [ 12319740 ]
          Hide
          Thomas Jungblut added a comment -

          Scheduling to 5.0

          Show
          Thomas Jungblut added a comment - Scheduling to 5.0
          Hide
          Thomas Jungblut added a comment -

          Patch looks good to me. Do we want to add this to the trunk?

          Show
          Thomas Jungblut added a comment - Patch looks good to me. Do we want to add this to the trunk?
          Hide
          Edward J. Yoon added a comment - - edited

          I'm good. let's add this to the 0.5 roadmap.

          P.S., I don't want to seriously considering about advanced scheduling now, But to handle bulk synchronous task scheduling problem efficiently, all things considered, we'll need to separate the phases into data loading phase, data re-distribution/re-partition phase, BSP computation phase, and output writing phase.

          I think, the HAMA-531 and recovery issues ( http://markmail.org/thread/2o625g2pqrtolizi#query:+page:1+mid:ltazto7k2wapshxs+state:results )are all basically an extension of this.

          Show
          Edward J. Yoon added a comment - - edited I'm good. let's add this to the 0.5 roadmap. P.S., I don't want to seriously considering about advanced scheduling now, But to handle bulk synchronous task scheduling problem efficiently, all things considered, we'll need to separate the phases into data loading phase, data re-distribution/re-partition phase, BSP computation phase, and output writing phase. I think, the HAMA-531 and recovery issues ( http://markmail.org/thread/2o625g2pqrtolizi#query:+page:1+mid:ltazto7k2wapshxs+state:results )are all basically an extension of this.
          Suraj Menon made changes -
          Attachment HAMA-543-locality.patch [ 12520871 ]
          Hide
          Suraj Menon added a comment -

          Hi, this a comparatively dirty hack that I made over the current source code. I would like someone to review this, especially because I have changed few things that were assumed to be multi-threaded as single-threaded.

          While working on it, I realized that this won't necessarily improve the performance, because the resource requirements for Hama is different from Hadoop. This change would move the mapper tasks closer to the input as in Hadoop. But in case of Hama tasks continue running on that machine throughout its lifetime. If in search of data-locality, the tasks get scheduled such that the communication between the nodes are costlier than normal (e.g. tasks resident in separate racks), then this change would degrade the performance.

          While discussing on the issue, Thomas and me felt that network topology information should be more important for scheduling jobs than data locality for the first superstep. We felt that HAMA-519 could be a good start for providing input for this. I see that this is already scheduled for 0.6. I can provide the test-cases if we decide to push this in 0.5 release.

          From the patch, I would like to know if making a single TaskWorker schedule all tasks is fine or not. This would be important in my future patches. So even if this patch is not really important, I would appreciate if it is reviewed.

          Show
          Suraj Menon added a comment - Hi, this a comparatively dirty hack that I made over the current source code. I would like someone to review this, especially because I have changed few things that were assumed to be multi-threaded as single-threaded. While working on it, I realized that this won't necessarily improve the performance, because the resource requirements for Hama is different from Hadoop. This change would move the mapper tasks closer to the input as in Hadoop. But in case of Hama tasks continue running on that machine throughout its lifetime. If in search of data-locality, the tasks get scheduled such that the communication between the nodes are costlier than normal (e.g. tasks resident in separate racks), then this change would degrade the performance. While discussing on the issue, Thomas and me felt that network topology information should be more important for scheduling jobs than data locality for the first superstep. We felt that HAMA-519 could be a good start for providing input for this. I see that this is already scheduled for 0.6. I can provide the test-cases if we decide to push this in 0.5 release. From the patch, I would like to know if making a single TaskWorker schedule all tasks is fine or not. This would be important in my future patches. So even if this patch is not really important, I would appreciate if it is reviewed.
          Thomas Jungblut made changes -
          Field Original Value New Value
          Link This issue relates to HAMA-519 [ HAMA-519 ]
          Hide
          praveen sripati added a comment -

          1) Hadoop has a pluggable interface for Scheduler, but it is not generic enough to plug it into Hama. But since Hama and Hadoop have some of the same concerns for scheduling, it should be possible to use the code.

          2) Also, there might be some RM (Resource Management) frameworks which can be integrated with Hama. But for some reason Hadoop chose to build their own RM. - http://goo.gl/O2Mur

          3) There might be no requirement for a scheduler for Hama on Yarn, since Yarn will do all the resource scheduling.

          Show
          praveen sripati added a comment - 1) Hadoop has a pluggable interface for Scheduler, but it is not generic enough to plug it into Hama. But since Hama and Hadoop have some of the same concerns for scheduling, it should be possible to use the code. 2) Also, there might be some RM (Resource Management) frameworks which can be integrated with Hama. But for some reason Hadoop chose to build their own RM. - http://goo.gl/O2Mur 3) There might be no requirement for a scheduler for Hama on Yarn, since Yarn will do all the resource scheduling.
          Hide
          Edward J. Yoon added a comment -

          I would prefer to update (FIFO) SimpleTaskScheduler.

          Show
          Edward J. Yoon added a comment - I would prefer to update (FIFO) SimpleTaskScheduler.
          Hide
          Suraj Menon added a comment -

          Should I change the SimpleTaskScheduler for this or should I create a new scheduler?

          Show
          Suraj Menon added a comment - Should I change the SimpleTaskScheduler for this or should I create a new scheduler?
          Suraj Menon created issue -

            People

            • Assignee:
              Unassigned
              Reporter:
              Suraj Menon
            • Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development