From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from progateway7-pub.mail.pro1.eigbox.com (gproxy5-pub.mail.unifiedlayer.com [67.222.38.55]) by sourceware.org (Postfix) with ESMTPS id 1EEF93858405 for ; Fri, 22 Jul 2022 19:08:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1EEF93858405 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com Received: from cmgw11.mail.unifiedlayer.com (unknown [10.0.90.126]) by progateway7.mail.pro1.eigbox.com (Postfix) with ESMTP id A4EC210047AFB for ; Fri, 22 Jul 2022 19:08:27 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id Ey0gocbR7q24iEy0hodqqf; Fri, 22 Jul 2022 19:08:27 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=DaLSFthW c=1 sm=1 tr=0 ts=62daf5ab a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=RgO8CyIxsXoA:10:nop_rcvd_month_year a=Qbun_eYptAEA:10:endurance_base64_authed_username_1 a=FsyTgRbiUpjPqa5ARikA:9 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References :Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=C3e/7ydeK/BQZGF0DUIhrznNTBQoVjYshmgEv8OV51w=; b=hyRDM9JWqPcSKfdCInLMmHJ+2U H6SVklyrsY+3vXeOQ7MnszmZLtjtexMK5vUwLfcxeIRaMEvcWrT3r640EErFgdsFrDGtY9RMC2/WK vfinYhEXo1wE21xZF4Pd1JoCI; Received: from 71-211-185-228.hlrn.qwest.net ([71.211.185.228]:56176 helo=murgatroyd) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1oEy0g-001F5b-Kx; Fri, 22 Jul 2022 13:08:26 -0600 From: Tom Tromey To: Tom de Vries via Gdb-patches Cc: Pedro Alves , Tom de Vries , Tom Tromey Subject: Re: [PATCH][gdbsupport] Use task size in parallel_for_each References: <20220718194219.GA16823@delia.home> <4fc23fcd-c15d-7622-8b51-cc48cd3cba16@palves.net> <75931310-5dcd-059d-9221-6c94dbcd231f@suse.de> X-Attribution: Tom Date: Fri, 22 Jul 2022 13:08:25 -0600 In-Reply-To: <75931310-5dcd-059d-9221-6c94dbcd231f@suse.de> (Tom de Vries via Gdb-patches's message of "Thu, 21 Jul 2022 22:23:33 +0200") Message-ID: <87leslj786.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.185.228 X-Source-L: No X-Exim-ID: 1oEy0g-001F5b-Kx X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-185-228.hlrn.qwest.net (murgatroyd) [71.211.185.228]:56176 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3022.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2022 19:08:41 -0000 Pedro> My passerby comment is that I wonder whether we should consider Pedro> switching to a work stealing implementation, so that threads that Pedro> are done with their chunk would grab another chunk from the work Pedro> pool. I think this would spare us from having to worry about Pedro> these distribution heuristics. Tom> I also though about a dynamic solution, but decided to try the Tom> simplest solution first. Tom> Anyway, with a dynamic solution you still might want to decide how big Tom> a chunck is, for which you could still need this type of heuristics. I think the idea of the work-stealing approach is that each worker grabs work as it can, and so no sizing is needed at all. If one worker ends up with a very large CU, it will simply end up working on fewer CUs. In this situation, work stealing might make the overall implementation simpler. Perhaps the batching parameter patch (commit 82d734f7a) and the vector of results patch (commit f4565e4c9) could be removed. Then, rather than using parallel_for, the DWARF reader could send N jobs to the thread pool, and each job would simply take the next available CU by incrementing an atomic counter. When the counter reached the number of CUs, a job would stop. Tom