Python threads and Numeric/SciPy exploit Dual Core ?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • robert

    #1

    Python threads and Numeric/SciPy exploit Dual Core ?

    Simple Python code obviously cannot use the dual core by Python threads.
    Yet, a program drawing CPU mainly for matrix computations - preferably
    with Numeric/SciPy - will this profit from a dual core when using 2 (or
    more) Python threads?

    robert
  • Fredrik Lundh

    #2
    Re: Python threads and Numeric/SciPy exploit Dual Core ?

    "robert" wrote:
    Simple Python code obviously cannot use the dual core by Python threads.
    Yet, a program drawing CPU mainly for matrix computations - preferably
    with Numeric/SciPy - will this profit from a dual core when using 2 (or
    more) Python threads?
    as long as the binding releases the GIL, sure.

    </F>



    Comment

    • Oeyvind Brandtsegg

      #3
      Re: Python threads and Numeric/SciPy exploit Dual Core ?

      I've been trying to make my music app use dual core,
      and would very much like some more detailed information on this.

      Excuse my lack of knowledge,
      but how do I explicitly release the GIL ?

      I haven't learned this, but have found through experimentation that I
      can release a thread by using time.sleep(0) inside a thread's "run
      while true" loop. This seems to create an interrupt, and give other
      threads a chance to do their thing.
      If this is terribly wrong (it works, but I dont' know how stable it
      is), please do point me in the direction of a proper way to implement
      it.
      As stated in an earlier post, my threads do not work on shared data,
      so I have not implemented any sort of lock or mutex.

      best
      Oeyvind



      On 10/2/06, Fredrik Lundh <fredrik@python ware.comwrote:
      "robert" wrote:
      >
      Simple Python code obviously cannot use the dual core by Python threads.
      Yet, a program drawing CPU mainly for matrix computations - preferably
      with Numeric/SciPy - will this profit from a dual core when using 2 (or
      more) Python threads?
      >
      as long as the binding releases the GIL, sure.
      >
      </F>
      >
      >
      >
      --

      >

      Comment

      • Fredrik Lundh

        #4
        Re: Python threads and Numeric/SciPy exploit Dual Core ?

        Oeyvind Brandtsegg wrote:
        I've been trying to make my music app use dual core,
        and would very much like some more detailed information on this.
        >
        Excuse my lack of knowledge,
        but how do I explicitly release the GIL ?

        I haven't learned this, but have found through experimentation that I
        can release a thread by using time.sleep(0) inside a thread's "run
        while true" loop. This seems to create an interrupt, and give other
        threads a chance to do their thing.
        that (momentarily) blocks the current thread, and forces a rescheduling.

        </F>



        Comment

        • robert

          #5
          Re: Python threads and Numeric/SciPy exploit Dual Core ?

          Fredrik Lundh wrote:
          "robert" wrote:
          >
          >
          >>Simple Python code obviously cannot use the dual core by Python threads.
          >>Yet, a program drawing CPU mainly for matrix computations - preferably
          >>with Numeric/SciPy - will this profit from a dual core when using 2 (or
          >>more) Python threads?
          >
          >
          as long as the binding releases the GIL, sure.
          Thus - does Numeric/SciPy release it?
          The same q about the orange (data mining) lib.

          Robert

          Comment

          • Robert Kern

            #6
            Re: Python threads and Numeric/SciPy exploit Dual Core ?

            robert wrote:
            Fredrik Lundh wrote:
            >
            >"robert" wrote:
            >>
            >>Simple Python code obviously cannot use the dual core by Python threads.
            >>Yet, a program drawing CPU mainly for matrix computations - preferably
            >>with Numeric/SciPy - will this profit from a dual core when using 2 (or
            >>more) Python threads?
            >>
            >as long as the binding releases the GIL, sure.
            >
            Thus - does Numeric/SciPy release it?
            Depends. Some of the linear algebra functions in scipy do. Most operations do
            not. People are looking at adding more.

            --
            Robert Kern

            "I have come to believe that the whole world is an enigma, a harmless enigma
            that is made terrible by our own mad attempt to interpret it as though it had
            an underlying truth."
            -- Umberto Eco

            Comment

            Working...