I believe the contract deliberately doesn't specify that level of detail.
It could be called with some very large lazy data structure or it could be
called with a short list (or empty list) in memory. The idea is to give as
much control to the runner as possible.

Kenn

On Mon, Mar 17, 2025 at 8:13 AM Joey Tran <joey.t...@schrodinger.com> wrote:

> Trying the dev list instead.
>
> I can't find any mention in the documentation whether `merge_accumulators`
> is called with all the accumulators at once or with an iterator. Perusing
> some of the combinefns in the python sdk, it looks like all of them work
> with an iterator and don't try to iterate over it twice.
>
> I'm considering implementing CombineFn execution with my runner such
> that only two accumulators are ever loaded into memory at a time. Not sure
> if CombineFn contract supports this though.
>
> On Fri, Mar 14, 2025 at 8:20 AM Joey Tran <joey.t...@schrodinger.com>
> wrote:
>
>> My intuition says no says all the accumulators will just grouped together
>> into a single key/accumulators element and that entire element will get
>> loaded into memory, but not sure if there's any kind of special magic to
>> handle this
>>
>> On Tue, Mar 11, 2025 at 11:16 PM Joey Tran <joey.t...@schrodinger.com>
>> wrote:
>>
>>> Hey all,
>>>
>>> Just wondering if CombineFn.merge_accumulators is called with a lazy
>>> iterator of accumulators or if it's expected to be called with all the
>>> accumulators in memory
>>>
>>> Best,
>>> Joey
>>>
>>

Reply via email to