Return-Path: Delivered-To: apmail-lucene-java-dev-archive@www.apache.org Received: (qmail 84070 invoked from network); 29 Nov 2009 17:40:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 29 Nov 2009 17:40:45 -0000 Received: (qmail 60404 invoked by uid 500); 29 Nov 2009 17:40:44 -0000 Delivered-To: apmail-lucene-java-dev-archive@lucene.apache.org Received: (qmail 60320 invoked by uid 500); 29 Nov 2009 17:40:44 -0000 Mailing-List: contact java-dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-dev@lucene.apache.org Received: (qmail 60312 invoked by uid 99); 29 Nov 2009 17:40:44 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 29 Nov 2009 17:40:44 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 29 Nov 2009 17:40:41 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 9A684234C052 for ; Sun, 29 Nov 2009 09:40:20 -0800 (PST) Message-ID: <1786429646.1259516420617.JavaMail.jira@brutus> Date: Sun, 29 Nov 2009 17:40:20 +0000 (UTC) From: "Erick Erickson (JIRA)" To: java-dev@lucene.apache.org Subject: [jira] Commented: (LUCENE-2096) Investigate parallelizing Ant junit tests In-Reply-To: <497419657.1259354360727.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/LUCENE-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12783436#action_12783436 ] Erick Erickson commented on LUCENE-2096: ---------------------------------------- Parallelizing tests is proving trickier than I'd hoped. Part of the problem is my not-wonderful ant skills... But what I've found so far with trying to use ForEach is that stuff gets in the way. In particular, the tag in the test-macro body I'm pretty sure defeats any parallelizing attempts by ForEach. Taking it out isn't straightforward. In some of my experiments, I got tests to fire off in parallel, but then started running into wonky errors that were so strange now I can't remember them, but some having to do with what looked like file contention for some temporary test files. Googling around I think I remember posts by Jason Ruthgren trying to so something similar in SOLR (?). Jason: if I'm remembering right did you find any joy? Then we'd have to rework how success and failure are handled because there's contention for that file as well. Now I'm wondering if the "scary python script" gets us more bang for the buck. I wrote a Groovy script the probably is a near-cousin for experiments and I'm wondering what would happen if we wrote a special testcase-type target that did NOT depend upon compile-test or, really, much of anything else and counted on the user to make sure to build the system first before using whatever script wecame up with. We don't really lose functionality by recursively looking for Test*.java files because that's what's done internally in the build files anyway. So doing that outside or inside the ant files doesn't seem like a loss. I'm putting this in the JIRA issue to preserve it for posterity. Meanwhile, I'll appeal to Ant gurus if they want to try whacking the Ant build files, and see what the script notion brings... > Investigate parallelizing Ant junit tests > ----------------------------------------- > > Key: LUCENE-2096 > URL: https://issues.apache.org/jira/browse/LUCENE-2096 > Project: Lucene - Java > Issue Type: Improvement > Components: Build > Reporter: Erick Erickson > Assignee: Erick Erickson > Priority: Minor > > Ant Contrib has a "ForEach" construct that may speed up running all of the Junit tests by parallelizing them with a configurable number of threads. I envision this in several stages. First, see if ForEach works for us with hard-coded lists, distribute this for testing then make the changes "for real". I intend to hard-code the list for the first pass, ordered by the time they take. This won't do for check-in, but will give us a fast proof-of-concept. > This approach will be most useful for multi-core machines. > In particular, we need to see whether the parallel tasks are isolated enough from each other to prevent mutual interference. > All this assumes the fragmentary reference I found is still available... -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org For additional commands, e-mail: java-dev-help@lucene.apache.org