Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 0B416200D43 for ; Tue, 7 Nov 2017 06:19:46 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 09BC9160BFF; Tue, 7 Nov 2017 05:19:46 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 4E97B160BEC for ; Tue, 7 Nov 2017 06:19:45 +0100 (CET) Received: (qmail 75823 invoked by uid 500); 7 Nov 2017 05:19:44 -0000 Mailing-List: contact dev-help@impala.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@impala.incubator.apache.org Delivered-To: mailing list dev@impala.incubator.apache.org Received: (qmail 75811 invoked by uid 99); 7 Nov 2017 05:19:44 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Nov 2017 05:19:44 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 50FFF1A2322 for ; Tue, 7 Nov 2017 05:19:43 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.379 X-Spam-Level: X-Spam-Status: No, score=0.379 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=cloudera.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id Y1PH2QTxPafp for ; Tue, 7 Nov 2017 05:19:41 +0000 (UTC) Received: from mail-lf0-f50.google.com (mail-lf0-f50.google.com [209.85.215.50]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 0D9D760D28 for ; Tue, 7 Nov 2017 05:19:41 +0000 (UTC) Received: by mail-lf0-f50.google.com with SMTP id r129so13010652lff.8 for ; Mon, 06 Nov 2017 21:19:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloudera.com; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=ZdSl3YsIB/FQBnXAK3ZsYewNWrRjwb1qP+BT0t/oD7g=; b=O/Ub953OIX+5FV8pJ2M6qUdnZEooCvfYu15CPj3y0bQjPL4Sr+CwHA7O1E1swB/dRM QkZfVl3abvNMOMs72RRfMVvZ/ycCEKEZySm3CRqiiEdxzM4CijXcP0K2ihJQNTUYDsLU 5d6iyzZBS/7cckoslXVgq+1oPEMwj6ik3QApE3Q9g8F51bo7VzxDiKHl16ZZRFL11NKl RkpW63nXBBgT5YEaf6kisWQpD6ZkERPNXP5JetLawvOCL0kXDzoXRWxaoeHlyZzzjW+R Q9fX9RJx3fFjyu7EQj9aIupunYNtoQqUvLb1TOte6IP25393TMrFyqRqrs4wsbh2Eyap JpUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=ZdSl3YsIB/FQBnXAK3ZsYewNWrRjwb1qP+BT0t/oD7g=; b=XZVKbRTfWtlUsGPpuZGEWJXq8oDUQY2/0bkSUS2+noxRWid2fj4l59m0Uu7bzb5wR5 XjN63AjT2GOcAMgyK82oBLwf6hs63FTDL9OSG6SocWoglmO5b/h31urLBJq4dgN9PtsC wRV+mCQO3RbYfeuGapL9QJPAABHDKH/ltMIdI4D9E4BsFu4iXiMDEcz62SH89+JvXhHD tc2+8oCcYiprFTAO9m7arQwyHDK5R4OkO9yezauom+HTk9seY+UtiaThA5ya6h464CTB 7iJZkumYlU8xS4QdG+ja49xQ9iyoAJcRjP84E5KB+xOb/NVvr7wheA5FDnOif8/TFGfB Mm7A== X-Gm-Message-State: AJaThX6j2iCnAm/rYfNgKvkbIZHRXTGeEErGtu7cLwTGomcDssNxhw3h LjWqwkK8i7eaedQJfpoG52Atd77AYGjLeqsO1kiFWcf8 X-Google-Smtp-Source: ABhQp+TmFbeP/ljcVzFzSPajvYLHKChCP5waYYprA1ue77EdhWVLalI1GIF3mopd9XS2OUCtSdeIouBUP67qxIieRZs= X-Received: by 10.25.16.218 with SMTP id 87mr5724619lfq.66.1510031980116; Mon, 06 Nov 2017 21:19:40 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.234.206 with HTTP; Mon, 6 Nov 2017 21:18:59 -0800 (PST) In-Reply-To: References: From: Jim Apple Date: Mon, 6 Nov 2017 21:18:59 -0800 Message-ID: Subject: Re: Which instruction set extensions should Impala require? To: "dev@impala" Content-Type: text/plain; charset="UTF-8" archived-at: Tue, 07 Nov 2017 05:19:46 -0000 I like those ideas. Filed https://issues.apache.org/jira/browse/IMPALA-6166 On Mon, Nov 6, 2017 at 11:26 AM, Todd Lipcon wrote: > FWIW in Kudu we draw the line at requiring SSE4.2 but not AVX. I think this > means we support Westmere (2010) and potentially also 1st gen Nehalem > (2008). Going back older than 2008 definitely seems excessively generous. > > Another thing to keep in mind is that some virtualization software may not > pass through all instruction set extensions. It would be worth double > checking that relatively recent versions of VirtualBox or other > commonly-used desktop VM options pass through AVX properly before making it > a requirement. > > -Todd > > On Mon, Nov 6, 2017 at 10:33 AM, Tim Armstrong > wrote: > >> I don't believe that we've seen people "seriously" using Impala with older >> hardware than that recently, but it's hard to know for sure. >> >> It's nice for adoption to support relatively old hardware - one thing we >> have seen before is people installing Impala on an old cluster to try it >> out. E.g. they wanted to try Impala and had four old servers sitting around >> unused. I don't think we should optimise too much for that case, but it's >> an argument for supporting ~5 year old hardware that has probably been >> retired from its original purpose. >> >> One option we could consider is drawing the line at >> https://en.wikipedia.org/wiki/Sandy_Bridge and >> https://en.wikipedia.org/wiki/Bulldozer_(microarchitecture)# >> Instruction_set_extensions. >> That would give us CLMUL, POPCNT, SSSE3, SSE4.1, SSE4.2 and AVX. It doesn't >> look like AVX2 was available on AMD chips until 2015. >> >> It seems less disruptive if we drop support for older processors in a major >> release - i.e. Impala 3.0. I don't think that needs to be a strict policy >> of never dropping hardware support in a minor release but I think it's more >> convenient for users. >> >> On Sat, Nov 4, 2017 at 10:53 PM, Jim Apple wrote: >> >> > In a discussion on https://issues.apache.org/jira/browse/IMPALA-6128, >> > we are talking about which instruction sets (available on newer x86-64 >> > processors) we want to require. >> > >> > At this point, I'm not sure how strong the motivation is for requiring >> > certain instruction sets, but it may be worth some effort to talk >> > about guidelines. As of now, we can decide at run time which methods >> > to use based on CPU info gathered at daemon start time. See >> > cpu-info.cc. >> > >> > The instruction in this case is the CLMUL instruction, which we >> > believe was available on all new server-class x86-64 chips by Intel >> > and AMD as of Q2, 2011. It has good performance benefits for >> > spill-to-disk encryption. >> > >> > We currently use the following, but only dispatching at run time: >> > >> > SSSE3(*), SSE4.1, SSE4.2 (Available since late 2011 on both AMD and >> Intel) >> > POPCNT (Available since late 2008 on both AMD and Intel) >> > AVX (late 2011) >> > AVX2 (late 2015) >> > >> > One argument for continuing with our current requirements is that >> > dispatching still gets us good speedup in some cases, and the branch >> > predictor should take care of some of the latency of dispatching. >> > >> > One argument for adding more requirements is that not only can >> > dispatching go away, but we can add flags to the compilers to use >> > later instructions, which can speed up auto-vectorized operations or >> > standard library operations. For instance, AVX has 256-bit registers >> > that can speed up bulk memory operations. >> > >> > A concern I have with setting a time-based rule is that it doesn't >> > seem easy to me to figure out when, say, AMD *stopped* selling >> > server-class chips without AVX. So, if we started requiring AVX, we >> > could have some Impala user with recent AMD chips become unable to run >> > the latest Impala, which would be a shame. >> > >> > Thoughts about what we should require? >> > >> > (*) We spit out an error if the machine does not have SSSE3 >> > >> > > > > -- > Todd Lipcon > Software Engineer, Cloudera