From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id ABBE47F75C for ; Thu, 11 Sep 2014 00:01:49 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of stedolan@stedolan.net) identity=pra; client-ip=209.85.215.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="stedolan@stedolan.net"; x-sender="stedolan@stedolan.net"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of stedolan@stedolan.net) identity=mailfrom; client-ip=209.85.215.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="stedolan@stedolan.net"; x-sender="stedolan@stedolan.net"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-la0-f48.google.com) identity=helo; client-ip=209.85.215.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="stedolan@stedolan.net"; x-sender="postmaster@mail-la0-f48.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aj0BALHJEFTRVdcwm2dsb2JhbABghDuCeLVUmksIFhABAQEBAQYLCwkUKoQEAQEEEhFWEAEKCw0CAiYCAiEBEgEFARwGEwgaiAwDEQSddWuLMI5NDVeGCwEXCoEii3SFLYFTAQSSSogighCOfIRLGCmFE2uBSIEHAQEB X-IPAS-Result: Aj0BALHJEFTRVdcwm2dsb2JhbABghDuCeLVUmksIFhABAQEBAQYLCwkUKoQEAQEEEhFWEAEKCw0CAiYCAiEBEgEFARwGEwgaiAwDEQSddWuLMI5NDVeGCwEXCoEii3SFLYFTAQSSSogighCOfIRLGCmFE2uBSIEHAQEB X-IronPort-AV: E=Sophos;i="5.04,501,1406584800"; d="scan'208";a="94033109" Received: from mail-la0-f48.google.com ([209.85.215.48]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 11 Sep 2014 00:01:49 +0200 Received: by mail-la0-f48.google.com with SMTP id ty20so10054583lab.35 for ; Wed, 10 Sep 2014 15:01:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=B0p6z/LE4rF1hGPw+1+fJVCcaiEj2bzczCgiczeHJbs=; b=F48HAY41q00bnU1oP3mU8a+Rg7cgKnvVGdxvXd8XIJfpbdJxrVKwZXvgN1F9KlbHGB dgHXgLDVT+r58B26CdPyWMLra21+QCP+zDwqhYDDun/wNA5+Xa7HphtcwuIoCz6NxHkf TTlxITuxDMdmAGodpZQjk/mNDQ7drXWGiTHF0+/HwQ2aXPRbwgC6gIFUqWQj/8PJGS8V 4UZdG5eSOZRtPJIGfUlW/X2jA63GnqZ8r3X5XzWqPFE11JhD+OZvemArWEUH8cfOGxFu YxTHYMQivgsnG5kg9OYoQGhGFSt3gUFU+Do8x7dfkzLtzeanGdzeWF+sTGedxIR2i/p+ 3znA== X-Gm-Message-State: ALoCoQnIAphoD1oQ0r4UFWsDtQjJiPzr/mHWDvf5v2fc4v2PCuhpodSD4abCndZFJF/iFerfOyAf MIME-Version: 1.0 X-Received: by 10.112.146.103 with SMTP id tb7mr4791021lbb.26.1410386508405; Wed, 10 Sep 2014 15:01:48 -0700 (PDT) Sender: stedolan@stedolan.net Received: by 10.114.11.65 with HTTP; Wed, 10 Sep 2014 15:01:48 -0700 (PDT) X-Originating-IP: [93.152.31.41] In-Reply-To: References: Date: Wed, 10 Sep 2014 23:01:48 +0100 X-Google-Sender-Auth: x6hAhrNvqyq9OoDr64LUb-g9XW4 Message-ID: From: Stephen Dolan To: Yotam Barnoy Cc: Ocaml Mailing List Content-Type: text/plain; charset=UTF-8 Subject: Re: [Caml-list] Multicore runtime On Tue, Sep 9, 2014 at 4:26 PM, Yotam Barnoy wrote: > With great care is right :) But seriously, work stealing is a huge > undertaking in this model, and may not be feasible at all as far as I can > tell. Every private heap object accessed by a thread has to be copied either > to the shared heap or to the stealer's heap. This is the downside of not > having one shared heap for everything. Of course there are huge upsides as > well, but I don't see how work stealing could work efficiently. The only > exception would be for a thread that hasn't started running at all, or has > allocated very little. It's implemented, and was demoed last week in the talk you mention. Work-stealing is the only reason the silly example program ran faster on more cores. Still lots of work to be done, but closer to fait than infeasible. Moving objects from a private to the shared heap is not a big deal. This happens anyway during minor garbage collection. Stealing a fiber that refers to objects in a private heap essentially involves doing some of the minor GC work before the next minor GC would otherwise occur. Stephen