3 processes for a task


Advanced search

Message boards : Unix/Linux : 3 processes for a task

Sort
Author Message
Profile suguruhirahara
Forum moderator
Volunteer tester
Avatar

Joined: Sep 13 06
Posts: 282
ID: 15
Credit: 56,614
RAC: 0
Message 1743 - Posted 8 Dec 2006 19:44:42 UTC
Last modified: 8 Dec 2006 19:47:07 UTC

Hello,

I realised that there are 3 processes of charmm running for 1 task, one of which is always active but the others are often 'sleeping'. (while the capture indeed shows all are active, it was taken just after the task got started.)



Is it expected? If so, could I know why they are necessary for a task?

thanks,
suguruhirahara

____________

I'm a volunteer participant; my views are not necessarily those of Docking@Home or its participating institutions.

Profile David Ball
Forum moderator
Volunteer tester
Avatar

Joined: Sep 18 06
Posts: 274
ID: 115
Credit: 1,634,401
RAC: 0
Message 1744 - Posted 9 Dec 2006 12:14:10 UTC - in response to Message ID 1743 .

suguruhirahara Wrote:

I realised that there are 3 processes of charmm running for 1 task, one of which is always active but the others are often 'sleeping'. (while the capture indeed shows all are active, it was taken just after the task got started.)


Hi Suguru,

That seems to be normal. Other BOINC projects do that as well. I believe that they are actually threads within the standard project clients. On Linux, they show up as separate processes due to the way threading is implemented. On WinXP task manager, they show up as a single process running 4 or 5 threads. The exception I've seen is ClimatePrediction, which seems to be running 2 WinXP processes, one with 3 threads and one with 1 thread, but that WU is running an older version of the CPDN client because I've been crunching on it for about 6 months.

I'd have to research it to find out exactly what the threads do, but I do know there are some heartbeat messages that are used to find out if a client is still running. I suspect they have something to do with that and probably some similar tasks. I have noticed that the extra threads never accumulate much CPU time.

IIRC, Linux threads have separate process ID's, but they have something called a "Thread Group ID", which would be the same for all the threads within the program. The thread group ID is the Process ID of the initial process created when the program started. On a single threaded program, the thread group ID and the Process ID would be the same.

Regards,

-- David

Message boards : Unix/Linux : 3 processes for a task

Database Error
: The MySQL server is running with the --read-only option so it cannot execute this statement
array(3) {
  [0]=>
  array(7) {
    ["file"]=>
    string(47) "/boinc/projects/docking/html_v2/inc/db_conn.inc"
    ["line"]=>
    int(97)
    ["function"]=>
    string(8) "do_query"
    ["class"]=>
    string(6) "DbConn"
    ["object"]=>
    object(DbConn)#7 (2) {
      ["db_conn"]=>
      resource(60) of type (mysql link persistent)
      ["db_name"]=>
      string(7) "docking"
    }
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(1) {
      [0]=>
      &string(51) "update DBNAME.thread set views=views+1 where id=125"
    }
  }
  [1]=>
  array(7) {
    ["file"]=>
    string(48) "/boinc/projects/docking/html_v2/inc/forum_db.inc"
    ["line"]=>
    int(60)
    ["function"]=>
    string(6) "update"
    ["class"]=>
    string(6) "DbConn"
    ["object"]=>
    object(DbConn)#7 (2) {
      ["db_conn"]=>
      resource(60) of type (mysql link persistent)
      ["db_name"]=>
      string(7) "docking"
    }
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(3) {
      [0]=>
      object(BoincThread)#3 (16) {
        ["id"]=>
        string(3) "125"
        ["forum"]=>
        string(1) "6"
        ["owner"]=>
        string(2) "15"
        ["status"]=>
        string(1) "0"
        ["title"]=>
        string(22) "3 processes for a task"
        ["timestamp"]=>
        string(10) "1165666450"
        ["views"]=>
        string(4) "1098"
        ["replies"]=>
        string(1) "1"
        ["activity"]=>
        string(23) "1.2943717518889997e-127"
        ["sufferers"]=>
        string(1) "0"
        ["score"]=>
        string(1) "0"
        ["votes"]=>
        string(1) "0"
        ["create_time"]=>
        string(10) "1165607082"
        ["hidden"]=>
        string(1) "0"
        ["sticky"]=>
        string(1) "0"
        ["locked"]=>
        string(1) "0"
      }
      [1]=>
      &string(6) "thread"
      [2]=>
      &string(13) "views=views+1"
    }
  }
  [2]=>
  array(7) {
    ["file"]=>
    string(63) "/boinc/projects/docking/html_v2/user/community/forum/thread.php"
    ["line"]=>
    int(184)
    ["function"]=>
    string(6) "update"
    ["class"]=>
    string(11) "BoincThread"
    ["object"]=>
    object(BoincThread)#3 (16) {
      ["id"]=>
      string(3) "125"
      ["forum"]=>
      string(1) "6"
      ["owner"]=>
      string(2) "15"
      ["status"]=>
      string(1) "0"
      ["title"]=>
      string(22) "3 processes for a task"
      ["timestamp"]=>
      string(10) "1165666450"
      ["views"]=>
      string(4) "1098"
      ["replies"]=>
      string(1) "1"
      ["activity"]=>
      string(23) "1.2943717518889997e-127"
      ["sufferers"]=>
      string(1) "0"
      ["score"]=>
      string(1) "0"
      ["votes"]=>
      string(1) "0"
      ["create_time"]=>
      string(10) "1165607082"
      ["hidden"]=>
      string(1) "0"
      ["sticky"]=>
      string(1) "0"
      ["locked"]=>
      string(1) "0"
    }
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(1) {
      [0]=>
      &string(13) "views=views+1"
    }
  }
}
query: update docking.thread set views=views+1 where id=125