Discussion on GPU backend

2016-05-03 Thread Niketan Pansare


Hi all,

I have updated the design document for our GPU backend in the JIRA
https://issues.apache.org/jira/browse/SYSTEMML-445. The implementation
details are based on the prototype I created and is available in PR
https://github.com/apache/incubator-systemml/pull/131. Once we are done
with the discussion, I can clean up and separate out the GPU backend in a
separate PR for easier review :)

Here are key design points:
A GPU backend would implement two abstract classes:
   1.   GPUContext
   2.   GPUObject



The GPUContext is responsible for GPU memory management and gets call-backs
from SystemML's bufferpool on following methods:
   1.   void acquireRead(MatrixObject mo)
   2.   void acquireModify(MatrixObject mo)
   3.   void release(MatrixObject mo, boolean isGPUCopyModified)
   4.   void exportData(MatrixObject mo)
   5.   void evict(MatrixObject mo)



A GPUObject (like RDDObject and BroadcastObject) is stored in CacheableData
object. It contains following methods that are called back from the
corresponding GPUContext:
   1.   void allocateMemoryOnDevice()
   2.   void deallocateMemoryOnDevice()
   3.   long getSizeOnDevice()
   4.   void copyFromHostToDevice()
   5.   void copyFromDeviceToHost()



In the initial implementation, we will add JCudaContext and JCudaPointer
that will extend the above abstract classes respectively. The JCudaContext
will be created by ExecutionContextFactory depending on the user-specified
accelarator. Analgous to MR/SPARK/CP, we will add a new ExecType: GPU and
implement GPU instructions.

The above design is general enough so that other people can implement
custom accelerators (for example: OpenCL) and also follows the design
principles of our CP bufferpool.

Thanks,

Niketan Pansare
IBM Almaden Research Center
E-mail: npansar At us.ibm.com
http://researcher.watson.ibm.com/researcher/view.php?person=us-npansar


Re: Draft - May 2016 SystemML Incubator Podling Report

2016-05-03 Thread dusenberrymw
I might add that we are preparing to release our next version very soon. 
Otherwise, LGTM. Thanks, Deron!

-Mike

--

Mike Dusenberry
GitHub: github.com/dusenberrymw
LinkedIn: linkedin.com/in/mikedusenberry

Sent from my iPhone.


> On May 2, 2016, at 1:11 PM, Niketan Pansare  wrote:
> 
> Hi Deron,
> 
> Thanks for writing the draft. I also presented SystemML at Rice University. 
> Can you please add it to the report ?
> 
> Link to the event on Rice CS calendar: 
> https://calendar.google.com/calendar/render?eid=MTdqZnJmZHZqM2ExNWlkbWtwa2czZXFzYmcgZnBoYmd1b3JsbzM2azJ0MWk4djk5ODcwbWtAZw=America/Chicago=true=xml#eventpage_6
> 
> Thanks,
> 
> Niketan Pansare
> IBM Almaden Research Center
> E-mail: npansar At us.ibm.com
> http://researcher.watson.ibm.com/researcher/view.php?person=us-npansar
> 
> Deron Eriksson ---05/02/2016 12:36:06 PM---Hi, I created a draft for the May 
> 2016 SystemML podling report that is due this
> 
> From: Deron Eriksson 
> To: dev@systemml.incubator.apache.org
> Date: 05/02/2016 12:36 PM
> Subject: Draft - May 2016 SystemML Incubator Podling Report
> 
> 
> 
> 
> Hi,
> 
> 
> I created a draft for the May 2016 SystemML podling report that is due this
> Wednesday. Please provide feedback if you'd like anything updated. For PMC
> members, if the issue is private related to the project, please use the
> private mailing list for discussion.
> 
> Thanks!
> 
> Deron
> 
> 
> 
> SystemML
> 
> 
> SystemML provides declarative large-scale machine learning (ML) that aims at
> 
> flexible specification of ML algorithms and automatic generation of hybrid
> 
> runtime plans ranging from single node, in-memory computations, to
> 
> distributed computations running on Apache Hadoop MapReduce and Apache
> 
> Spark.
> 
> 
> SystemML has been incubating since 2015-11-02.
> 
> 
> Three most important issues to address in the move towards graduation:
> 
> 
>  - Grow SystemML community: increase mailing list activity,
> 
>increase adoption of SystemML for scalable machine learning, encourage
> 
>data scientists to adopt DML and PyDML algorithm scripts, respond to
> 
>user feedback to ensure SystemML meets the requirements of real-world
> 
>situations, write papers, and present talks about SystemML.
> 
>  - Continue to produce releases.
> 
>  - Increase the diversity of our project's contributors and committers.
> 
> 
> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
> 
> aware of?
> 
> 
>  NONE.
> 
> 
> How has the community developed since the last report?
> 
> 
>  Our mailing list from February through April had 199 messages involving
> 
>  topics such as algorithms, DML functionality, usability, and bug fixes. In
> 
>  addition, we have had many discussions on our JIRA site and in pull
> request
> 
>  conversations. Fred Reiss presented at Spark Summit East on February 17
> about
> 
>  SystemML internals. Berthold Reinwald spoke at the Spark Technology
> Center on
> 
>  March 9 about scalable machine learning with SystemML. Niketan Pansare
> spoke
> 
>  on April 28 at Datapalooza in Austin about declarative machine learning at
> 
>  scale with SystemML. Researchers in Germany are working to add Flink as an
> 
>  additional SystemML backend. On GitHub, the project has been starred 267
> 
>  times and forked 92 times.
> 
> 
> How has the project developed since the last report?
> 
> 
>  We produced our first Apache release, version 0.9.0-incubating. Numerous
> 
>  additions have been made to the project, including core functionality,
> 
>  usability improvements, and documentation. The project has had 204 commits
> 
>  since February 1. In the same time frame, 155 new issues have been
> reported
> 
>  on our JIRA site and 77 issues have been resolved. 114 pull requests
> opened
> 
>  since Febrary 1 have been closed.
> 
> 
> Date of last release:
> 
> 
>  2016-02-15 (version 0.9.0-incubating)
> 
> 
> When were the last committers or PMC members elected?
> 
> 
>  NONE
> 
> 
> 


Deprecate `ppred(...)` Built-in Function

2016-05-03 Thread dusenberrymw
Hi all,

The `ppred(...)` built-in function (`ppred(X, 0, ">")`) is no longer necessary 
as relational comparison operators are supported natively in the language (`X > 
0`) and follow R's semantics.

SYSTEMML-657 had been created to track the deprecation of this function, and is 
currently open if anyone would like to take it on.  We'd like to add deprecated 
warnings to the parser and documentation, and replace all current uses of the 
function in our DML scripts. 


Thanks!

- Mike

--

Mike Dusenberry
GitHub: github.com/dusenberrymw
LinkedIn: linkedin.com/in/mikedusenberry

Sent from my iPhone.