Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First Steps #2

Open
11 tasks
scarlehoff opened this issue Aug 20, 2019 · 1 comment
Open
11 tasks

First Steps #2

scarlehoff opened this issue Aug 20, 2019 · 1 comment
Assignees

Comments

@scarlehoff
Copy link
Member

scarlehoff commented Aug 20, 2019

Before we start focusing on physical processes (see issue #1) I think we should have a first test of a MonteCarlo integration that spans all the different systems we want to try, since by the end of this year we expect to have two FPGA (one from intel one from xilinx), an ATI gpu, an nvidia GPU, an amd CPU and an intel CPU .

I think having a toy model of just the MC should be the first step (at least it would be for me so I've assigned myself to this issue).

My plan is to write a simple MC with importance sampling for the following architectures (in C++). The function to integrate is not important.

Versions

  • CPU OpenMP
  • GPU OpenAcc
  • GPU OpenCL
  • GPU Cuda
  • FPGA OpenCL
  • FPGA OpenAcc (there is work on this direction, but I think nothing usable yet?)

Extras

  • Script comparing performance and producing plots

Bonus tracks:

I expect all of these options below to be slower, but I am curious to know how they behave

  • Python Cuda
  • Tensorflow GPU
  • Tensorflow CPU
  • Tensorflow FPGA

Extra motivations

Apart from everything I wrote at the top there are other reasons why I think this is a good idea:

  1. I have not googled in depth* (I'm writing this here now mostly so I don't forget) but the fact that no google result** shows such a raw comparison makes me think this is something interesting to do. Probably a lot of people dismiss it as "trivial" but even if it is, just having an open library with all the options seems interesting enough for me.
  2. Having so many devices to test we will want to have unit tests and nothing better than this.
  3. If we want to get rich with the stock market this is the way to go, given than 90% of the results I found related to finance...
  4. To have a document/link to send companies when we ask for devices worth $5000 for free.

*I found an article that seemed interesting BUT it was paywalled and I am at home so I couldn't read it. So much for open science.
**I mean, "monte carlo integration xilinx" gives only three pages in google.

A quick edit: I think it would be very valuable if we do this and indeed write a tutorial/document and open-source the code.

@scarlehoff scarlehoff self-assigned this Aug 20, 2019
@scarrazza
Copy link
Contributor

It looks like there is an alternative to numba from google: https://github.com/google/jax

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants