<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user">
    <title>gmane.comp.python.simpy.user</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1538"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1537"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1536"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1535"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1534"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1533"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1532"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1531"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1530"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1529"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1528"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1527"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1526"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1525"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1524"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1523"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1522"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1521"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1520"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.python.simpy.user/1519"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1538">
    <title>FW: tonyon boyo</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1538</link>
    <description>&lt;pre&gt; http://www.theregularsband.com/pnb/rktfqf/yrrzvm/fuym/imilj/muzc.html
  tonyon boyo
 nefy/div&amp;gt;------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev_______________________________________________
Simpy-users mailing list
Simpy-users&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/simpy-users
&lt;/pre&gt;</description>
    <dc:creator>tonyon boyo</dc:creator>
    <dc:date>2013-06-18T14:47:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1537">
    <title>Re: Any approach or idea to simulate Batch ServiceQueue</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1537</link>
    <description>&lt;pre&gt;
Am 2013-06-06 um 15:54 schrieb Yanshuo Sun &amp;lt;yssun&amp;lt; at &amp;gt;umd.edu&amp;gt;:


You should take a look at Simpy 3's resource system. It is much more flexible
than the one from SimPy 2 and lets you defined custom resource types.

Since SimPy 3 is not yet released, you need to install it from 
https://bitbucket.org/simpy/simpy/.

You can find some documentation (still work in progress) here:
https://simpy.readthedocs.org/en/latest/

Cheers,
Stefan------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________
Simpy-users mailing list
Simpy-users&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/simpy-users
&lt;/pre&gt;</description>
    <dc:creator>Stefan Scherfke</dc:creator>
    <dc:date>2013-06-09T11:58:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1536">
    <title>Being informed when a process' holding of a resourceis pre-empted</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1536</link>
    <description>&lt;pre&gt;I have read the SimPy manual and searched the mailing list but cannot 
find a mechanism for a process being informed when it is pre-empted or 
resumed after pre-emption.

The application is to avoid priority inversion by priority inheritance:

1. Resource R1 is pre-emptive, PriorityQ

2. Resource R2 is non-pre-emptive, PriorityQ

Time 10: Process P1 grabs and obtains R1 at priority 10

Time 11:  Process P1 grabs and obtains R2 at priority 10

Time 11:  Process P1 waits for 10 time units

Time 15:  Process P2 wakes up and grabs and obtains R1 at priority 15, 
pre-empting P1

Time 17:  Process P2 tries to grab R2 and fails because P1 already owns it.

Time 17:  P2 is suspended and P1 released, regaining ownership of R1

At this point, to avoid possible priority inversion in the future, P1 
needs to hold R1 at priority max(10, 15) = 15 for the remainder of its 
10 time units, not priority 10.

I can't find any way for P1 to be informed "you were pre-empted but 
you're running again now and you have R1 back. Use&lt;/pre&gt;</description>
    <dc:creator>Chris Hobbs</dc:creator>
    <dc:date>2013-06-07T13:58:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1535">
    <title>Any approach or idea to simulate Batch Service Queue</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1535</link>
    <description>&lt;pre&gt;Hi All,

I am quite new to SimPy, but I love it so much. It's very powerful and easy to implement.

I am working on a shuttle service simulation problem. Several vehicles are available to transport passengers waiting at multiple hotels to several tour centers. I formulate each vehicle as a moving server providing batch service. The service time is travel time from hotel to tour center. After transporting passengers to tour center, the vehicle will return empty. Then the server (vehicle) becomes available again.

I have known three classes of congestion points, Resource, Level and Store. I just think that none of them are suitable to model a server with batch service.

I think there must be some way to tackle this. Or someone has encountered similar problems before. I am just expecting any idea on that.

Thanks,
Yanshuo

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition an&lt;/pre&gt;</description>
    <dc:creator>Yanshuo Sun</dc:creator>
    <dc:date>2013-06-06T13:54:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1534">
    <title>Performance Tips for SimPy</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1534</link>
    <description>&lt;pre&gt;Hi,

I've been trying to search for references that talk about recipes that 
would provide me some guidance w.r.t how I can extract best speed for 
simulation models via SimPy.
But I've not found any, hence thought I'll write to this user list in case 
any of you have any tips and tricks to share.

My own experience with SimPy is just about a month old and I realized 
during this time that "yield waituntil" could become a bit costlier and I 
could model the same thing better by using SimEvent.

Thanks &amp;amp; Regards,
Brajesh Singh
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain 
confidential or privileged information. If you are 
not the intended recipient, any dissemination, use, 
review, distribution, printing or copying of the 
information contained in this e-mail message 
and/or attachments to it are strictly prohibited. If 
you have received this communication in error, 
please notify us by reply e-mail or telephone and 
immediately and &lt;/pre&gt;</description>
    <dc:creator>Brajesh Singh</dc:creator>
    <dc:date>2013-06-05T09:46:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1533">
    <title>Keeping SimPy 2, once 3 is out</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1533</link>
    <description>&lt;pre&gt;If you plan to stick to SimPy 2 for a while after SimPy 3 has ben released, 
please update your requirements to "SimPy&amp;gt;=2,&amp;lt;3" so that pip install will give 
you SimPy 2.3.1 instead of SimPy 3.

If you just require "SimPy" or "SimPy&amp;gt;=2", pip will install SimPy 3 and break
your simulation. You don’t want that. ;-)------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________
Simpy-users mailing list
Simpy-users&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/simpy-users
&lt;/pre&gt;</description>
    <dc:creator>Stefan Scherfke</dc:creator>
    <dc:date>2013-06-05T06:59:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1532">
    <title>SimPy 3 Status Update</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1532</link>
    <description>&lt;pre&gt;Hi SimPy-Community,

yesterday, Ontje merged his last changes:

• He did some research on how to improve the scheduling of events and make it
 more flexible. He extracted the scheduling functionality into a separate
 class. For real-time simulations you can now use the same "Environment" and
 "simulate()" as for normal simulations but only use the real-time scheduler.
 The "rt" package now contains a "RealTimeEnvironment" which is just a wrapper
 for "Environment" with a "RealtimeScheduler".

• You can now also *yield* events that have already been triggered. That is,
 for example, useful if you want to wait for other processes to finish to get
 their results and don’t know if they are still running or not.

We have now implemented everything that we planned for SimPy 3. There are still
a lot of things to be done before we can release it, though:

• We will split the repo into a SimPy 2 and 3 version. This will reduce the
 repository size from 13MB to 1.6MB and should dramatically improve the time
 n&lt;/pre&gt;</description>
    <dc:creator>Stefan Scherfke</dc:creator>
    <dc:date>2013-06-04T07:59:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1531">
    <title>RFC: Handling of triggered events</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1531</link>
    <description>&lt;pre&gt;Hi,

I've just created a new pull request, which allows processes to yield events 
which have already been triggered (that is, their value has been set):

https://bitbucket.org/simpy/simpy/pull-request/15
 
Previously, this was an error and you had to check if the event has already 
been triggered before yielding it.

However, in all usecases I can think of you are generally interested in the 
value of an event. Checking the state of an event to prevent this error 
becomes a nuisance in these cases. Note that you may still simply check the 
triggered attribute of an event to figure out if has already happened or not.

What do you think? Are there some side-effects I fail to see?

Cheers &amp;amp; Thanks,
Ontje

------------------------------------------------------------------------------
Try New Relic Now &amp;amp; We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, &amp;amp; servers with jus&lt;/pre&gt;</description>
    <dc:creator>Ontje Lünsdorf</dc:creator>
    <dc:date>2013-05-28T14:31:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1530">
    <title>Re: Dynamic priority queue</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1530</link>
    <description>&lt;pre&gt;Am 2013-05-21 um 01:29 schrieb Mercedeh &amp;lt;mercedeh.t&amp;lt; at &amp;gt;gmail.com&amp;gt;:


Okay, there were several problems with your code:

1. You mixed the OO-API and the procedural API. You seem to be using the
   procedural one, so I removed all occurences of "self.sim".
2. You used "res" to reference the resource within "release()". It should be
   "self" instead.
3. You had to implement "_release()", not "release()" (that was actually my
   fault. :-)

Here’s a modified version of you script that actually works and modifies the
priorities.

""" bank09: Several Counters but a Single Queue """
from SimPy.Simulation import *
from random import expovariate, seed, uniform

## Model components ------------------------

class Source(Process):
    """Source generates customers randomly """

    def generate(self, number, meanTBA, resource):
        for i in range(number):
            c = Customer(name="Customer%02d" % i)
            activate(c, c.visit(b=resource, P=0))
            t = 1
            ##t = expovariate(1.0/meanTBA)
 &lt;/pre&gt;</description>
    <dc:creator>Stefan Scherfke</dc:creator>
    <dc:date>2013-05-22T13:57:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1529">
    <title>Re: Dynamic priority queue</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1529</link>
    <description>&lt;pre&gt;
were 
Prioirt 
in 
waitQ[cust3: 
not 
Resource(capacity=1,name="Counter",unitName="Clerk",qType=PriorityQ)
------
----

Stefan, 

I tried to implement resource sub-class. It seems I can't get the code 
properly. 

I added following class:

class MyResource (Resource):
    def release(self,b):
        super(MyResource, self).release(self,b)
        for entity in res.waitQ:
            entity._priority[res]=new_value
        res.waitQ.sort( key= lambda item: -item.priority[res])

and updated main code:

res = MyResource(capacity=1,name="Counter",unitName="Clerk",qType=PriorityQ)

but it does not change the result as I am not using  MyResource class right 
obviously. 

Do I have to modify following yield statement in customer class as well?

yield release, self, b 

one question: Priority is not an object of Customer, I get this error if I 
try to modify waitQ between line 19 and 24 (between two yield request and 
release statements). I could not figure out how I can change the priority of 
customers if that i&lt;/pre&gt;</description>
    <dc:creator>Mercedeh</dc:creator>
    <dc:date>2013-05-20T23:29:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1528">
    <title>SimPy 3 Status Report</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1528</link>
    <description>&lt;pre&gt;Hello SimPy community,

here’s another SimPy 3 status update:

We were finally happy with Ontje’s resource refactoring branch [1| and merged
it into the default repository.

The resource API does not change very much (the most important aspects stayed
the same), but all resources now inherit from a single *BaseResource* and, as
with the *Environment*, events now play a more important role in the
implementation.

We also added two new resource types, so we now have:

- Resource: The good old resource. It implements the basis functionality from
  SimPy 2’s counterpart and has a much leaner implementation.

- PriorityResource: Processes requesting the resource are sorted by priority,
  which they can pass to each *request()*

- PreemptiveResource: Like PriorotiyResource, but processes can also preempt
  users of the resource if their priority is high enough.

- Container: The one you know from SimPy 2. Stores an abstract, homogeneous
  amount of something (e.g., a bottle of milk or a basket of apples). Pr&lt;/pre&gt;</description>
    <dc:creator>Stefan Scherfke</dc:creator>
    <dc:date>2013-05-19T18:21:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1527">
    <title>Re: Dynamic priority queue</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1527</link>
    <description>&lt;pre&gt;
Am 2013-05-18 um 06:51 schrieb Mercedeh &amp;lt;mercedeh.t&amp;lt; at &amp;gt;gmail.com&amp;gt;:


You could sub-class Resource like this:

class MyResource(Resource):
    def release(*args, **kwargs):
        super(MyResource, self).release(*args, **kwargs)
        update_wait_q()  # Like I showed you in my last email

Then use this resource in line 32.


------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d_______________________________________________
Simpy-users mailing list
Simpy-users&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/simpy-users
&lt;/pre&gt;</description>
    <dc:creator>Stefan Scherfke</dc:creator>
    <dc:date>2013-05-19T13:33:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1526">
    <title>Re: Dynamic priority queue</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1526</link>
    <description>&lt;pre&gt;Hi Stefan, 

Thanks a lot for the answer. Sorry for the vage email, your assumptions were 
right. 

To explain my problem: Say we have 2 customers in waitQ: [custt1: Prioirt 
10, cust3:priority 5] while cust 2 is getting service. when service is 
finished for cust2 (yield release) the priorities of all the customers in 
waitQ has to be updated and then sort the waitQ again. e.g. new waitQ[cust3: 
18, cust1: priority 2]. The code I'm using is the bank example. I could not 
follow the code to see where I should add new priorities for all the 
customers in waitQ. 

When code reads yield release it gets the front customer in waitQ? 

Again I truly appreciate your help,
Mercedeh

""" bank09: Several Counters but a Single Queue """
from SimPy.Simulation import *
from random import expovariate, seed, uniform
## Model components ------------------------

1 class Source(Process):
2    """ Source generates customers randomly """

3     def generate(self,number,meanTBA,resource):
4         for i in range(number):
5    &lt;/pre&gt;</description>
    <dc:creator>Mercedeh</dc:creator>
    <dc:date>2013-05-18T04:51:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1525">
    <title>Re: Dynamic priority queue</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1525</link>
    <description>&lt;pre&gt;
and 
------
----
Hey Stefan, 

Thanks a lot for the answer. Sorry for the vage email, your assumptions were 
right. 

To explain my problem: Say we have 2 customers in waitQ: [custt1: Prioirt 
10, cust3:priority 5] while cust 2 is getting service. when service is 
finished for cust2 (yield release) the priorities of all the customers in 
waitQ has to be updated and then sort the waitQ again. e.g. new waitQ[cust3: 
18, cust1: priority 2]. The code I'm using is the bank example. I could not 
follow the code to see where I should add new priorities for all the 
customers in waitQ. 

When code reads yield release it gets the front customer in waitQ? 

Again I truly appreciate your help,
Mercedeh

""" bank09: Several Counters but a Single Queue """
from SimPy.Simulation import *
from random import expovariate, seed, uniform
## Model components ------------------------

1 class Source(Process):
2    """ Source generates customers randomly """

3     def generate(self,number,meanTBA,resource):
4         for i in r&lt;/pre&gt;</description>
    <dc:creator>Mercedeh</dc:creator>
    <dc:date>2013-05-17T20:53:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1524">
    <title>Re: Dynamic priority queue</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1524</link>
    <description>&lt;pre&gt;Hi Mercedeh,

unfortunately, your email is a bit vague, so here’s my best guess how
you might solve your problem:

Assumptions:

- You are using SimPy 2.3(.1)
- You are using the Resource class

Solution:

When you need to change the priority of a process:

# Create Resource with PriorityQ:
res = Resource(qType=PriorityQ)
entity = Entity(...)  # Your process that uses the resource

# Changing prioriy was triggered …
# Set new priority
entity._priority[res] = new_value  
# Sort waitQ (higher value =&amp;gt; higher prio.)
res.waitQ.sort(key=lambda item: -item.priority[res])

Hope that helps,
Stefan


Am 2013-05-15 um 21:04 schrieb Mercedeh &amp;lt;mercedeh.t&amp;lt; at &amp;gt;gmail.com&amp;gt;:


------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download&lt;/pre&gt;</description>
    <dc:creator>Stefan Scherfke</dc:creator>
    <dc:date>2013-05-16T09:48:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1523">
    <title>Dynamic priority queue</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1523</link>
    <description>&lt;pre&gt;Hello, 

Thanks barantoppareatgmail for replying my email. 
I need to modify the priorities of entities each time one of the servers 
finish serving an entity. this models demands scattered in different 
locations and priorities come from the new location of the moving server 
after serving a customer.I feel it is possible by minor lines before or 
after lines added into customer class but I could not figure out where and 
how I should write it. I appreciate any help on this. 

Thanks,
Mercedeh


------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
&lt;/pre&gt;</description>
    <dc:creator>Mercedeh</dc:creator>
    <dc:date>2013-05-15T19:04:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1522">
    <title>Re: SimPy 3: zombie timeout events</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1522</link>
    <description>&lt;pre&gt;Hi Jonathan,

Am Sonntag, 12. Mai 2013, 12:16:45 schrieb Jonathan Leivent:

FYI: We had the same thoughts and are currently discussing this pull request:

https://bitbucket.org/simpy/simpy/pull-request/14/separate-scheduling-of-timeouts-from

It would be interesting if the same 4% speedup is also visible in that pull 
request.

Cheers,
Ontje

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
&lt;/pre&gt;</description>
    <dc:creator>Ontje Lünsdorf</dc:creator>
    <dc:date>2013-05-12T16:57:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1521">
    <title>Re: SimPy 3: zombie timeout events</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1521</link>
    <description>&lt;pre&gt;Hi Jonathan,

Am Sonntag, 12. Mai 2013, 12:16:45 schrieb Jonathan Leivent:

FYI: We had the same thoughts and are currently discussing this pull request:

https://bitbucket.org/simpy/simpy/pull-request/14/separate-scheduling-of-timeouts-from

It would be interesting if the same 4% speedup is also visible in that pull 
request.

Cheers,
Ontje

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
&lt;/pre&gt;</description>
    <dc:creator>Ontje Lünsdorf</dc:creator>
    <dc:date>2013-05-12T17:02:04</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1520">
    <title>Re: SimPy 3: zombie timeout events</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1520</link>
    <description>&lt;pre&gt;

It's faster, just not much faster.  Only about 4% after several million 
steps.  It uses 3 deques (for the 3 EVT_TYPEs) to keep the "now" events 
separate from the env._events heap, but still preserve the exact same 
event order (which I tested by having two runs of the same deterministic 
simulation side by side, one with the deques, the other without).  This 
results in the expected 10X reduction in heappush/heappop calls - so the 
zombies should not really be much of an issue, either.

Oh well - I guess the zombie threat was all hype.

&lt;/pre&gt;</description>
    <dc:creator>Jonathan Leivent</dc:creator>
    <dc:date>2013-05-12T16:16:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1519">
    <title>SimPy 3: zombie timeout events</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1519</link>
    <description>&lt;pre&gt;Here's an unexpected behavior in SimPy 3.  Sorry if it sounds a bit too 
much like a bad horror movie.

I have a large simulation (thousands of processes), and was measuring 
several things about it, including the event queue length 
(len(env._events)).  After the simulation ran for a while, the event 
queue length was growing much larger than I could account for just based 
on how many processes exist.  I then measured both the length of the 
event queue and the number of events on it that have callbacks. 
Interestingly, the number of events with callbacks never grows very 
high, but the number without callbacks - which I'll refer to as zombie 
events (since they won't do anything but die when step finally gets to 
them) - grows very high.  Further investigation shows that all the 
zombies are timeout events (type simpy.core.Timeout).

This simulation makes heavy use of interrupts.  That's probably the 
source of the zombies.  Unfortunately, it would be very hard to change 
the simulation design to use subs&lt;/pre&gt;</description>
    <dc:creator>Jonathan Leivent</dc:creator>
    <dc:date>2013-05-12T00:35:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.python.simpy.user/1518">
    <title>Re: getting determinism in Simpy is hard!</title>
    <link>http://permalink.gmane.org/gmane.comp.python.simpy.user/1518</link>
    <description>&lt;pre&gt;
That's a good idea.  But, it didn't work.


While examining all of the imports in my code: I found a usage of heapq 
where object references can get used to order tuples because the earlier 
fields in the tuples are equal.

That appears to have been the problem!  Thanks.

There's probably not enough demand for such a thing - but it would be 
nice to have a pylint option to flag potential non-determinism - just 
because it's so easy to introduce non-determinism into a python program 
where it might not be desired.  Maybe I will get on the pylint 
discussion list and ask...

&lt;/pre&gt;</description>
    <dc:creator>Jonathan Leivent</dc:creator>
    <dc:date>2013-05-03T14:26:49</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.python.simpy.user">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.python.simpy.user</link>
  </textinput>
</rdf:RDF>
