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 1F7DF200B8A for ; Sat, 24 Sep 2016 10:11:32 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 1DFA9160AD1; Sat, 24 Sep 2016 08:11:32 +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 15FE7160ABE for ; Sat, 24 Sep 2016 10:11:30 +0200 (CEST) Received: (qmail 25887 invoked by uid 500); 24 Sep 2016 08:11:30 -0000 Mailing-List: contact dev-help@systemml.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@systemml.incubator.apache.org Delivered-To: mailing list dev@systemml.incubator.apache.org Received: (qmail 25876 invoked by uid 99); 24 Sep 2016 08:11:29 -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; Sat, 24 Sep 2016 08:11:29 +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 8D2AA1A01F2 for ; Sat, 24 Sep 2016 08:11:29 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.299 X-Spam-Level: * X-Spam-Status: No, score=1.299 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, TVD_FW_GRAPHIC_NAME_MID=0.001] autolearn=disabled Received: from mx2-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 Evg4gM3oR6Jo for ; Sat, 24 Sep 2016 08:11:26 +0000 (UTC) Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with ESMTPS id F137C5F2F2 for ; Sat, 24 Sep 2016 08:11:25 +0000 (UTC) Received: from pps.filterd (m0098413.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id u8O8806d031794 for ; Sat, 24 Sep 2016 04:11:25 -0400 Received: from e18.ny.us.ibm.com (e18.ny.us.ibm.com [129.33.205.208]) by mx0b-001b2d01.pphosted.com with ESMTP id 25nkmrb5p1-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Sat, 24 Sep 2016 04:11:24 -0400 Received: from localhost by e18.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sat, 24 Sep 2016 04:11:24 -0400 Received: from d01dlp03.pok.ibm.com (9.56.250.168) by e18.ny.us.ibm.com (146.89.104.205) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Sat, 24 Sep 2016 04:11:22 -0400 X-IBM-Helo: d01dlp03.pok.ibm.com X-IBM-MailFrom: mboehm@us.ibm.com X-IBM-RcptTo: dev@systemml.incubator.apache.org Received: from b01cxnp22036.gho.pok.ibm.com (b01cxnp22036.gho.pok.ibm.com [9.57.198.26]) by d01dlp03.pok.ibm.com (Postfix) with ESMTP id BCDE2C90041 for ; Sat, 24 Sep 2016 04:11:08 -0400 (EDT) Received: from b01ledav005.gho.pok.ibm.com (b01ledav005.gho.pok.ibm.com [9.57.199.110]) by b01cxnp22036.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u8O8BLg011534730 for ; Sat, 24 Sep 2016 08:11:21 GMT Received: from b01ledav005.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BD5C7AE03B for ; Sat, 24 Sep 2016 04:11:21 -0400 (EDT) Received: from d50lp02.ny.us.ibm.com (unknown [146.89.104.208]) by b01ledav005.gho.pok.ibm.com (Postfix) with ESMTPS id A797EAE034 for ; Sat, 24 Sep 2016 04:11:21 -0400 (EDT) Received: from localhost by d50lp02.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sat, 24 Sep 2016 04:11:21 -0400 Received: from smtp.notes.na.collabserv.com (192.155.248.66) by d50lp02.ny.us.ibm.com (158.87.18.21) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128/128) Sat, 24 Sep 2016 04:11:20 -0400 Received: from localhost by smtp.notes.na.collabserv.com with smtp.notes.na.collabserv.com ESMTP for from ; Sat, 24 Sep 2016 08:11:19 -0000 Received: from us1a3-smtp05.a3.dal06.isc4sb.com (10.146.71.159) by smtp.notes.na.collabserv.com (10.106.227.127) with smtp.notes.na.collabserv.com ESMTP; Sat, 24 Sep 2016 08:11:17 -0000 Received: from us1a3-mail149.a3.dal06.isc4sb.com ([10.146.38.84]) by us1a3-smtp05.a3.dal06.isc4sb.com with ESMTP id 2016092408111608-30743 ; Sat, 24 Sep 2016 08:11:16 +0000 MIME-Version: 1.0 In-Reply-To: <1ffe92ae6a28438a3c376e207e03a69b@posteo.de> Subject: Re: Proof of Concept: Embedded Scala DSL To: dev@systemml.incubator.apache.org From: "Matthias Boehm" Date: Sat, 24 Sep 2016 01:11:11 -0700 References: <1ffe92ae6a28438a3c376e207e03a69b@posteo.de> X-KeepSent: FDCD08CE:3D1BCF6F-00258038:002983CB; type=4; name=$KeepSent X-Mailer: IBM Notes Release 9.0.1FP2 SHF37 August 25, 2014 X-LLNOutbound: False X-Disclaimed: 32919 X-TNEFEvaluated: 1 Content-type: multipart/related; Boundary="0__=8FBB0AABDFBA055B8f9e8a93df938690918c8FBB0AABDFBA055B" x-cbid: 16092408-0044-0000-0000-0000014908F8 X-IBM-ISS-SpamDetectors: Score=0.394815; BY=0; FL=0; FP=0; FZ=0; HX=0; KW=0; PH=0; SC=0.394815; ST=0; TS=0; UL=0; ISC= X-IBM-ISS-DetailInfo: BY=3.00005813; HX=3.00000240; KW=3.00000007; PH=3.00000004; SC=3.00000185; SDB=6.00760869; UDB=6.00362106; UTC=2016-09-24 08:11:18 x-cbparentid: 16092408-6358-0000-0000-000000F01743 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused X-TM-AS-GCONF: 00 X-Content-Scanned: Fidelis XPS MAILER X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00005813; HX=3.00000240; KW=3.00000007; PH=3.00000004; SC=3.00000185; SDB=6.00760869; UDB=6.00362106; IPR=6.00535507; BA=6.00004753; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00012770; XFM=3.00000011; UTC=2016-09-24 08:11:23 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-09-24_02:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1609020000 definitions=main-1609240150 archived-at: Sat, 24 Sep 2016 08:11:32 -0000 --0__=8FBB0AABDFBA055B8f9e8a93df938690918c8FBB0AABDFBA055B Content-type: multipart/alternative; Boundary="1__=8FBB0AABDFBA055B8f9e8a93df938690918c8FBB0AABDFBA055B" --1__=8FBB0AABDFBA055B8f9e8a93df938690918c8FBB0AABDFBA055B Content-Transfer-Encoding: quoted-printable Content-type: text/plain; charset=US-ASCII thanks for sharing the summary - this is very nice. While looking over the example, I had the following questions: 1) Output handling: It would be great to see an example how the results of Algorithm.execute() are consumed. Do you intend to hand out our binary matrix representation or MLContext's Matrix from which the user then requests specific output formats? Also if there are multiple Algorithm instances, how is the MLContext (with its internal state of lazily evaluated intermediates) reused? 2) Scala-breeze prototyping: How do you intend to support operations that are not supported in breeze? Examples are removeEmpty, table, aggregate, rowIndexMax, quantile/centralmoment, cummin/cummax, and DNN operations? 3) Frame data type and operations: Do you also intend to add a frame type and its operations? I think for this initial prototype it is not necessarily required but please make the scope explicit. Regards, Matthias From: fschueler@posteo.de To: dev@systemml.incubator.apache.org Date: 09/23/2016 04:36 PM Subject: Proof of Concept: Embedded Scala DSL As discussed in the related Jira (SYSTEMML-451) I have started to implement a prototype/proof of concept for an embedded DSL in Scala. I have summarized the current approach in a short document that you can find on github together with the code: https://github.com/fschueler/emma/blob/sysml-dsl/emma-sysml-dsl/README.md Please note that current development happens in the Emma project but will move to an independent module in the SystemML project once the necessary additions to Emma are merged. By having the DSL in a separate module, we can include Scala and Emma dependencies only for the users that actually want to use the Scala DSL. The current code serves as a proof of concept to discuss further development with the SystemML community. I especially welcome input from SystemML Scala users on the usability of the API design. Next steps will include the translation from Scala code to DML with support of all features currently supported in DML, including control flow structures. Also, a coherent way of executing the generated scripts from Scala and the interaction with outside data formats (such as Spark Dataframes) will be integrated. I am happy to answer your questions and discuss the described approach here! Felix --1__=8FBB0AABDFBA055B8f9e8a93df938690918c8FBB0AABDFBA055B Content-Transfer-Encoding: quoted-printable Content-type: text/html; charset=US-ASCII Content-Disposition: inline

thanks for sharing the summary - this is very nice. While lo= oking over the example, I had the following questions:

1) Output han= dling: It would be great to see an example how the results of Algorithm.exe= cute() are consumed. Do you intend to hand out our binary matrix representa= tion or MLContext's Matrix from which the user then requests specific outpu= t formats? Also if there are multiple Algorithm instances, how is the MLCon= text (with its internal state of lazily evaluated intermediates) reused?
2) Scala-breeze prototyping: How do you intend to support operations t= hat are not supported in breeze? Examples are removeEmpty, table, aggregate= , rowIndexMax, quantile/centralmoment, cummin/cummax, and DNN operations?
3) Frame data type and operations: Do you also intend to add a frame = type and its operations? I think for this initial prototype it is not neces= sarily required but please make the scope explicit.

Regards,
Matt= hias


3D"Inactivefschueler---09/= 23/2016 04:36:14 PM---As discussed in the related Jira (SYSTEMML-451) I hav= e started to implement a prototype/proof of co

From: fschueler@posteo= .de
To: dev@systemml.incubator.apache.org
Date: 09/23/2016 04:36 PM
Subject: Proof of Concept: Embedded Scala DSL





A= s discussed in the related Jira (SYSTEMML-451) I have started to
implem= ent a prototype/proof of concept for an embedded DSL in Scala.

I hav= e summarized the current approach in a short document that you can
find= on github together with the code:
https://github.c= om/fschueler/emma/blob/sysml-dsl/emma-sysml-dsl/README.md
P= lease note that current development happens in the Emma project but
wil= l move to an independent module in the SystemML project once the
necess= ary additions to Emma are merged. By having the DSL in a separate
modul= e, we can include Scala and Emma dependencies only for the users
that a= ctually want to use the Scala DSL.

The current code serves as a proo= f of concept to discuss further
development with the SystemML community= . I especially welcome input from
SystemML Scala users on the usability= of the API design.
Next steps will include the translation from Scala c= ode to DML with
support of all features currently supported in DML, inc= luding control
flow structures.
Also, a coherent way of executing th= e generated scripts from Scala and
the interaction with outside data fo= rmats (such as Spark Dataframes)
will be integrated.

I am happy = to answer your questions and discuss the described approach
here!
Felix



--1__=8FBB0AABDFBA055B8f9e8a93df938690918c8FBB0AABDFBA055B-- --0__=8FBB0AABDFBA055B8f9e8a93df938690918c8FBB0AABDFBA055B--