www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Google Summer of Code 2016 Only A Few Hours Left

reply Craig Dillabaugh <craig.dillabaugh gmail.com> writes:
The GSOC deadline is Feb 19th 19:00 UTC (or 2 PM Wawa time) so 
any last ideas for the Idea's page are welcome.

Our application is completed, but changes can still be made to 
the ideas page.  In fact I suppose we can go on making 
modifications even after the deadline, as I have no idea at what 
time Google takes the snapshots of these pages for evaluation.  
Thanks to Martin Nowak's suggestion we are now participating as 
"The D Foundation" (rather than Digital Mars).

Thanks to all who have helped out to this point.

Cheers,

Craig
Feb 19 2016
next sibling parent reply Alex Herrmann <alexandermherrmann gmail.com> writes:
On Friday, 19 February 2016 at 17:03:57 UTC, Craig Dillabaugh 
wrote:
 The GSOC deadline is Feb 19th 19:00 UTC (or 2 PM Wawa time) so 
 any last ideas for the Idea's page are welcome.

 Our application is completed, but changes can still be made to 
 the ideas page.  In fact I suppose we can go on making 
 modifications even after the deadline, as I have no idea at 
 what time Google takes the snapshots of these pages for 
 evaluation.  Thanks to Martin Nowak's suggestion we are now 
 participating as "The D Foundation" (rather than Digital Mars).

 Thanks to all who have helped out to this point.

 Cheers,

 Craig
As a prospective student, fingers are crossed for D.
Feb 19 2016
next sibling parent Craig Dillabaugh <craig.dillabaugh gmail.com> writes:
On Friday, 19 February 2016 at 20:08:43 UTC, Alex Herrmann wrote:
 On Friday, 19 February 2016 at 17:03:57 UTC, Craig Dillabaugh 
 wrote:
 The GSOC deadline is Feb 19th 19:00 UTC (or 2 PM Wawa time) so 
 any last ideas for the Idea's page are welcome.

 Our application is completed, but changes can still be made to 
 the ideas page.  In fact I suppose we can go on making 
 modifications even after the deadline, as I have no idea at 
 what time Google takes the snapshots of these pages for 
 evaluation.  Thanks to Martin Nowak's suggestion we are now 
 participating as "The D Foundation" (rather than Digital Mars).

 Thanks to all who have helped out to this point.

 Cheers,

 Craig
As a prospective student, fingers are crossed for D.
Me too. Its been a few years now.
Feb 19 2016
prev sibling parent Jeremy DeHaan <dehaan.jeremiah gmail.com> writes:
On Friday, 19 February 2016 at 20:08:43 UTC, Alex Herrmann wrote:
 On Friday, 19 February 2016 at 17:03:57 UTC, Craig Dillabaugh 
 wrote:
 The GSOC deadline is Feb 19th 19:00 UTC (or 2 PM Wawa time) so 
 any last ideas for the Idea's page are welcome.

 Our application is completed, but changes can still be made to 
 the ideas page.  In fact I suppose we can go on making 
 modifications even after the deadline, as I have no idea at 
 what time Google takes the snapshots of these pages for 
 evaluation.  Thanks to Martin Nowak's suggestion we are now 
 participating as "The D Foundation" (rather than Digital Mars).

 Thanks to all who have helped out to this point.

 Cheers,

 Craig
As a prospective student, fingers are crossed for D.
Same here. I started working on some proposals already. I really hope D gets accepted.
Feb 19 2016
prev sibling parent reply Dave <kraxli77 gmail.com> writes:
On Friday, 19 February 2016 at 17:03:57 UTC, Craig Dillabaugh 
wrote:
 The GSOC deadline is Feb 19th 19:00 UTC (or 2 PM Wawa time) so 
 any last ideas for the Idea's page are welcome.

 Our application is completed, but changes can still be made to 
 the ideas page.  In fact I suppose we can go on making 
 modifications even after the deadline, as I have no idea at 
 what time Google takes the snapshots of these pages for 
 evaluation.  Thanks to Martin Nowak's suggestion we are now 
 participating as "The D Foundation" (rather than Digital Mars).

 Thanks to all who have helped out to this point.

 Cheers,

 Craig
D is a fantastic efficient and fast replacement of Python which even has great plotting and other analysis features as ggplotd! To gain traction in numerical and statistical computing it is important to provide great optimization, automatic differential (AD) (reversed-mode AD (e.g. in mc-stan.org for Bayesian stuff) and/or forward-mode as e.g. for R at GSOC-2010 - there is no reason for numerical diff these days anymore, and you may mess-up your stuff using it!), and Bayesian routines. D is laking on these basic features (my personal opinion - correct me if I am wrong). Good starting points for a GSOC project would be "to port" mc-stan.org or some optimization algorithms from Coin-OR.org (please let me be more particular and independent of existing work if there is any interest for such a project!). I am not a D specialist but getting more and more into it and up to happily mentor this GSOC-project (maybe there would be (co-)mentors with more D experiences). (I already initiated a successful GSOC application on algorithmic differentiation in R together with John Nash for GSOC 2010 (student: Chidambaram Annamalai) - unfortunately I did not have the capacity to mentor/support the project as I had to finish my PhD during this time)
Feb 19 2016
next sibling parent Dave <kraxli77 gmail.com> writes:
On Friday, 19 February 2016 at 21:10:45 UTC, Dave wrote:
 On Friday, 19 February 2016 at 17:03:57 UTC, Craig Dillabaugh 
 wrote:
 The GSOC deadline is Feb 19th 19:00 UTC (or 2 PM Wawa time) so 
 any last ideas for the Idea's page are welcome.

 Our application is completed, but changes can still be made to 
 the ideas page.  In fact I suppose we can go on making 
 modifications even after the deadline, as I have no idea at 
 what time Google takes the snapshots of these pages for 
 evaluation.  Thanks to Martin Nowak's suggestion we are now 
 participating as "The D Foundation" (rather than Digital Mars).

 Thanks to all who have helped out to this point.

 Cheers,

 Craig
D is a fantastic efficient and fast replacement of Python which even has great plotting and other analysis features as ggplotd! To gain traction in numerical and statistical computing it is important to provide great optimization, automatic differential (AD) (reversed-mode AD (e.g. in mc-stan.org for Bayesian stuff) and/or forward-mode as e.g. for R at GSOC-2010 - there is no reason for numerical diff these days anymore, and you may mess-up your stuff using it!), and Bayesian routines. D is laking on these basic features (my personal opinion - correct me if I am wrong). Good starting points for a GSOC project would be "to port" mc-stan.org or some optimization algorithms from Coin-OR.org (please let me be more particular and independent of existing work if there is any interest for such a project!). I am not a D specialist but getting more and more into it and up to happily mentor this GSOC-project (maybe there would be (co-)mentors with more D experiences). (I already initiated a successful GSOC application on algorithmic differentiation in R together with John Nash for GSOC 2010 (student: Chidambaram Annamalai) - unfortunately I did not have the capacity to mentor/support the project as I had to finish my PhD during this time)
Sorry, I just missed that the deadline is UTC 19:00. Maybe next year :-)
Feb 19 2016
prev sibling next sibling parent reply jmh530 <john.michael.hall gmail.com> writes:
On Friday, 19 February 2016 at 21:10:45 UTC, Dave wrote:
 Good starting points for a GSOC project would be "to port" 
 mc-stan.org or some optimization algorithms from Coin-OR.org 
 (please let me be more particular and independent of existing 
 work if there is any interest for such a project!).
I've written bindings for nlopt and a wrapper to make it more D-like. Close to releasing it. I'm also thinking about doing the same thing for GLPK, but I want to do other non-D stuff before I get to that. The only optimization library I'm familiar with in Coin-OR is ipopt and that's C++, which might be more difficult to get working. Being able to call Stan from D would definitely be cool. It looks beyond my expertise to get it working though. I think part of the difficulty is that while it is written in C++, there isn't a C++ interface. I think they are working on one though. I looked at the code for rstan and the command line interface and couldn't make much headway in understanding what's going on. It should be possible to do some manipulation in D and pipe it to the command line interface of Stan. Alternately, you could try calling pystan or rstan from D. If you make any progress on these approaches, I would be interested.
Feb 19 2016
parent reply bachmeier <no spam.net> writes:
On Friday, 19 February 2016 at 21:50:43 UTC, jmh530 wrote:
 On Friday, 19 February 2016 at 21:10:45 UTC, Dave wrote:
 Alternately, you could try calling pystan or rstan from D. If 
 you make any progress on these approaches, I would be 
 interested.
If it has an R interface, it also has a D interface using my rdlang project. I will look at it when I get some free time.
Feb 20 2016
parent reply jmh530 <john.michael.hall gmail.com> writes:
On Saturday, 20 February 2016 at 13:31:03 UTC, bachmeier wrote:
 On Friday, 19 February 2016 at 21:50:43 UTC, jmh530 wrote:
 On Friday, 19 February 2016 at 21:10:45 UTC, Dave wrote:
 Alternately, you could try calling pystan or rstan from D. If 
 you make any progress on these approaches, I would be 
 interested.
If it has an R interface, it also has a D interface using my rdlang project. I will look at it when I get some free time.
R is the most popular way to use Stan I think. rstan is the library.
Feb 20 2016
parent reply bachmeier <no spam.net> writes:
On Saturday, 20 February 2016 at 15:00:50 UTC, jmh530 wrote:
 On Saturday, 20 February 2016 at 13:31:03 UTC, bachmeier wrote:
 On Friday, 19 February 2016 at 21:50:43 UTC, jmh530 wrote:
 On Friday, 19 February 2016 at 21:10:45 UTC, Dave wrote:
 Alternately, you could try calling pystan or rstan from D. If 
 you make any progress on these approaches, I would be 
 interested.
If it has an R interface, it also has a D interface using my rdlang project. I will look at it when I get some free time.
R is the most popular way to use Stan I think. rstan is the library.
I looked at rstan. I've heard of it but never used it. AFAICT, the computationally intensive part is done by the call to stan() from within the R code. Therefore there are no efficiency issues with calling D -> R -> stan. I took the easy road and ran the given R code directly. Here is my program: import rinsided, rdlang.r, rdlang.vector; void main() { evalRQ(`library(rstan)`); evalRQ(`y <- read.table('https://raw.github.com/wiki/stan-dev/rstan/rats.txt', header = TRUE)`); evalRQ(`x <- c(8, 15, 22, 29, 36)`); evalRQ(`xbar <- mean(x)`); evalRQ(`N <- nrow(y)`); evalRQ(`T <- ncol(y)`); evalRQ(`rats_fit <- stan(file = 'https://raw.githubusercontent.com/stan-dev/example-models/master/bugs_examples/vol1/rats/rats.stan')`); auto stanOutput = RVector(evalR(`attr(rats_fit, "sim")[[1]][[1]][[1]]`)); stanOutput.print(); } stanOutput is a D struct holding a pointer to that particular part of the output. Without more knowledge of rats_fit, I can't go further. You could also pass D data into R (y, x, xbar, ...) but I didn't see a reason to do that here. Nonetheless this is what you want, a way to call rstan from D, and then access the results from your D program.
Feb 20 2016
parent jmh530 <john.michael.hall gmail.com> writes:
On Saturday, 20 February 2016 at 20:39:58 UTC, bachmeier wrote:
 I looked at rstan. I've heard of it but never used it. AFAICT, 
 the computationally intensive part is done by the call to 
 stan() from within the R code. Therefore there are no 
 efficiency issues with calling D -> R -> stan.

 I took the easy road and ran the given R code directly. Here is 
 my program:
 }

 stanOutput is a D struct holding a pointer to that particular 
 part of the output. Without more knowledge of rats_fit, I can't 
 go further. You could also pass D data into R (y, x, xbar, ...) 
 but I didn't see a reason to do that here. Nonetheless this is 
 what you want, a way to call rstan from D, and then access the 
 results from your D program.
Very cool! I like and recommend Stan because you can fit types of models that would be very difficult to implement any other way. It was originally developed to fit hierarchical/multi-level models. You're right that the computationally intensive part is not in R. You write a .stan file that contains the model you want to fit. Calling the stan function in R compiles the .stan file to C++ and runs, then it gives you some output. rats_fit stores everything from when stan fit the rats.stan model to the data. The getting started page on github https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started shows some of the key ways that you would interact with it. Print and plot. The extract function is also key. That's used to pull out the simulated values from the HMC.
Feb 20 2016
prev sibling next sibling parent Craig Dillabaugh <craig.dillabaugh gmail.com> writes:
On Friday, 19 February 2016 at 21:10:45 UTC, Dave wrote:
 On Friday, 19 February 2016 at 17:03:57 UTC, Craig Dillabaugh 
 wrote:
 [...]
D is a fantastic efficient and fast replacement of Python which even has great plotting and other analysis features as ggplotd! To gain traction in numerical and statistical computing it is important to provide great optimization, automatic differential (AD) (reversed-mode AD (e.g. in mc-stan.org for Bayesian stuff) and/or forward-mode as e.g. for R at GSOC-2010 - there is no reason for numerical diff these days anymore, and you may mess-up your stuff using it!), and Bayesian routines. D is laking on these basic features (my personal opinion - correct me if I am wrong). [...]
Well, you can always try updating the ideas page anyways. Today was the application deadline, but I don't think there is anything they can do to stop us from updating a page on our Wiki. Just make sure to add yourself to the mentor's page.
Feb 19 2016
prev sibling parent reply jmh530 <john.michael.hall gmail.com> writes:
On Friday, 19 February 2016 at 21:10:45 UTC, Dave wrote:
 Good starting points for a GSOC project would be "to port" 
 mc-stan.org or some optimization algorithms from Coin-OR.org 
 (please let me be more particular and independent of existing 
 work if there is any interest for such a project!).
This is what I was talking about: https://code.dlang.org/packages/libnlopt https://code.dlang.org/packages/nloptd
Feb 22 2016
parent reply Dave <karxli77 gmail.com> writes:
On Monday, 22 February 2016 at 16:11:45 UTC, jmh530 wrote:
 On Friday, 19 February 2016 at 21:10:45 UTC, Dave wrote:
 This is what I was talking about:
 https://code.dlang.org/packages/libnlopt
 https://code.dlang.org/packages/nloptd
Cool stuff and an inspiring discussion how one can do numerics in D! For the GSOC project I was rather thinking of standalone D tools. For the interested once, AdRoll implemented the BFGS optimization algorithm in D: https://github.com/AdRoll/lbfgs-d The Stan Math Library is a header-only C++ library as Eigen is. Is there a chance to port such big libraries including many macros with htod (unfortunately I do not have a Windows-OS to try it out)?
Feb 22 2016
parent reply jmh530 <john.michael.hall gmail.com> writes:
On Monday, 22 February 2016 at 20:00:09 UTC, Dave wrote:
 The Stan Math Library is a header-only C++ library as Eigen is. 
 Is there a chance to port such big libraries including many 
 macros with htod (unfortunately I do not have a Windows-OS to 
 try it out)?
On posix, you could try dstep. I ran htod on nlopt, but because it made some use of macros, I ended up having to make a bunch of adjustments myself. Afterwards, comparing what I did with what htod did, they were actually very close. I just wasn't familiar enough with how to do the conversation to notice it until I spent a lot of time learning about making the conversations. You could also try Calypso. On that Qt MOC thread Elie Morisse complained about there not being enough testers. I'm sure creating other examples would be helpful or any other way to lend a helping hand.
Feb 22 2016
parent Jacob Carlborg <doob me.com> writes:
On 2016-02-22 23:32, jmh530 wrote:
 On Monday, 22 February 2016 at 20:00:09 UTC, Dave wrote:
 The Stan Math Library is a header-only C++ library as Eigen is. Is
 there a chance to port such big libraries including many macros with
 htod (unfortunately I do not have a Windows-OS to try it out)?
On posix, you could try dstep.
Unfortunately DStep cannot create bindings for C++. It also doesn't handle macros. Handle #define is work in progress. -- /Jacob Carlborg
Feb 22 2016