Re: [hpx-users] GSoC 2018, on "applying machine learning technques ..." project

2018-02-19 Thread Patricia Grubel
As far as performance counters you may wish to experiment with the overhead 
counter in addition to the idle-rate counter.

Pat
> On Feb 19, 2018, at 12:26 PM, Zahra Khatami  wrote:
> 
> Hi Ray,
> 
> If you refer to the published paper, you could get more information. 
> Generally talking, this project uses compiler and runtime system to gather 
> both static and dynamic information to set HPX algorithm parameters such as 
> chunk sizes efficiently. Static information are gathered by a compiler, which 
> we used clang and we developed a new class for clang for this purpose. 
> Dynamic information are gathered by new HPX policies that we developed for 
> this purpose. You can look at the example in HPXML in HPX GitHub.
> 
> Thanks,
> Zahra
> 
> On Mon, Feb 19, 2018 at 9:04 AM 김규래  > wrote:
> Hi Adrian,
> 
> Thanks for clarifying.
> 
> I think I pretty much get the picture.
> 
>  
> Looking forward to get in touch with Patrick in IRC within this week.
> 
>  
> Thanks everyone.
> 
>  
> msca8h at naver dot com
> 
> msca8h at sogang dot ac dot kr
> 
> Ray Kim
> 
> ___
> hpx-users mailing list
> hpx-users@stellar.cct.lsu.edu 
> https://mail.cct.lsu.edu/mailman/listinfo/hpx-users 
> 
> -- 
> Best Regards, Zahra Khatami | PhD Student Center for Computation & Technology 
> (CCT) School of Electrical Engineering & Computer Science Louisiana State 
> University 2027 Digital Media Center (DMC) Baton Rouge, LA 70803
> ___
> hpx-users mailing list
> hpx-users@stellar.cct.lsu.edu
> https://mail.cct.lsu.edu/mailman/listinfo/hpx-users

___
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users


Re: [hpx-users] GSoC 2018, on "applying machine learning technques ..." project

2018-02-19 Thread Zahra Khatami
Hi Ray,

If you refer to the published paper, you could get more information.
Generally talking, this project uses compiler and runtime system to gather
both static and dynamic information to set HPX algorithm parameters such as
chunk sizes efficiently. Static information are gathered by a compiler,
which we used clang and we developed a new class for clang for this
purpose. Dynamic information are gathered by new HPX policies that we
developed for this purpose. You can look at the example in HPXML in HPX
GitHub.

Thanks,
Zahra

On Mon, Feb 19, 2018 at 9:04 AM 김규래  wrote:

> Hi Adrian,
>
> Thanks for clarifying.
>
> I think I pretty much get the picture.
>
>
>
> Looking forward to get in touch with Patrick in IRC within this week.
>
>
>
> Thanks everyone.
>
>
>
> msca8h at naver dot com
>
> msca8h at sogang dot ac dot kr
>
> Ray Kim
> ___
> hpx-users mailing list
> hpx-users@stellar.cct.lsu.edu
> https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
>
-- 
Best Regards, Zahra Khatami | PhD Student Center for Computation &
Technology (CCT) School of Electrical Engineering & Computer Science
Louisiana State University 2027 Digital Media Center (DMC) Baton Rouge, LA
70803
___
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users


Re: [hpx-users] Machine learning applied to HPX smart executors

2018-02-19 Thread Patrick Diehl
Hi Gabriel,

I am not sure if it is possible with one regression, but maybe with a
more sophisticated model. But it is up to you what you want to propose
in your proposal. I think one task of this project would be to find out
which model is suitable to do this.

You can either propose a different approach or a combination of
regression models.

Best,

Patrick


On 02/19/2018 12:21 PM, Gabriel Laberge wrote:
> Hi,
> In the article
> [0]https://arxiv.org/abs/1711.01519
> It is written that a binary logistic regression was used to find the  
> execution policy and that a multinomial regression was used to find  
> the chunk size and the prefetching distance. Would there be a  
> possibility to use only one regression to find all 3 parameters  
> instead of using two?
> Thank you
> 
> 
> 
> ___
> hpx-users mailing list
> hpx-users@stellar.cct.lsu.edu
> https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
> 

-- 
Patrick Diehl
diehlpk.github.io



signature.asc
Description: OpenPGP digital signature
___
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users


[hpx-users] Machine learning applied to HPX smart executors

2018-02-19 Thread Gabriel Laberge
Hi,
In the article
[0]https://arxiv.org/abs/1711.01519
It is written that a binary logistic regression was used to find the  
execution policy and that a multinomial regression was used to find  
the chunk size and the prefetching distance. Would there be a  
possibility to use only one regression to find all 3 parameters  
instead of using two?
Thank you



___
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users


Re: [hpx-users] GSoC 2018, on "applying machine learning technques ..." project

2018-02-19 Thread 김규래
Hi Adrian,
Thanks for clarifying.
I think I pretty much get the picture.
 
Looking forward to get in touch with Patrick in IRC within this week.
 
Thanks everyone.
 
msca8h at naver dot com
msca8h at sogang dot ac dot kr
Ray Kim
___
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users


Re: [hpx-users] GSoC 2018, on "applying machine learning technques ..." project

2018-02-19 Thread Adrian Serio

Patrick and Ray,

Just for clarity's sake I will point out that Zahra's work did include 
information gathered at compile time. She used a custom Clang plugin to 
gather this information.


That being said, we may want to only utilize runtime information in the 
context of this project. However, I will deffer that decision to the 
mentors assigned to the project.


Adrian


On 2/18/2018 4:10 PM, Patrick Diehl wrote:

Hi Ray Kim,


But the original GSoC project description and the paper[1]  both mention
*compiler provided* *static data*.
 From my belief this cannot be acquired from HPX performance counters
(excuse me if they actually do)
If this project should be independent of compiler (or libray), than I
suppose I may not be bothered?

Yes, this was mentioned in the project description. But since we wrote
the description, I looked into the blaze library and how they decide to
use single core or omp execution, depending on the parameters, like the
input size. They measuring the threshold when a parallel execution is
faster as the single core execution. These thresholds for different
algorithms are provided in a header file as constants.

I was thinking that something similar could be done with machine
learning for the different algorithms. Instead of a threshold we would
have function learned by the machine learning algorithm.

This is just my thinking how to do this. For sure, there are many other
approaches out there. it is your task to propose any solution, you think
could solve this problem.


In case of not doing any machine learning during run time,
What form of implementation are you expecting?

I was thinking to have for different parallel algorithms one function

f_i(length of input, amount of cpus, ...) -> (chunk_size, used amount of
cpus)

So during run time, your function get input parameters, like the amount
of cpus and the length of the input, and maybe many more. And the
function returns the optimal chunk size and maybe the  used amount of
cpus. Where used amount is the amount of cpu used by hpx. For example
one wants to run hpx with 3 cpus, but the input size is very small and
it would be faster to just use one cpu. So your function would predict
this.

I was thinking that one could use performance counters to obtain, e.g.
the /threads/idle-rate for different input parameters. So one would have
an d-dimensional input space, which could be used to learn a function
approximating this points.


A separate program that does prediction and sets all the parameters?

1) A shell script, which runs the hpx applications and save all data to
a csv file.

2) A python script, which uses this data to learn the function f_i.

3) These functions should be implemented and a possible smart executor
could use the function for each parallel algorithm to predict the best
chunk size and parallel or serial execution, depending on your input
parameters.


Or a meta program that does the job in compile time?

If you think this is necessary, please provide a explanation why and how
you want to do this.


Or is this up to my proposition?

Yes, you should look into how the task could be solved and propose to
the community any solution, you think could do this. We will discuss
with you your proposed solution and improve it.

I am happy to discuss with you next week on irc. I think it will be
easier to clarify things.

Best,

Patrick

On 02/18/2018 02:15 PM, 김규래 wrote:

​Hi again Patrick,
​Thanks for keeping track of me.

But the original GSoC project description and the paper[1]  both mention
*compiler provided* *static data*.
 From my belief this cannot be acquired from HPX performance counters
(excuse me if they actually do)
If this project should be independent of compiler (or libray), than I
suppose I may not be bothered?

/> If you collect data and try to generate a model and use the > trained
model without any machine learning during run time,/

In case of not doing any machine learning during run time,
What form of implementation are you expecting?
A separate program that does prediction and sets all the parameters?
Or a meta program that does the job in compile time?
Or is this up to my proposition?

Thanks for all
Ray Kim

[1] http://stellar.cct.lsu.edu/pubs/khatami_espm2_2017.pdf, p4 fig2




___
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users


--
Adrian Serio
Scientific Program Coordinator
2118 Digital Media Center
225.578.8506

___
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users


[hpx-users] [GSoC 2018] Histogram Performance Counter

2018-02-19 Thread Saurav Sachidanand
Hello all,

My name is Saurav Sachidanand and I wish to participate in GSoC 2018.
I'm intrigued with the Histogram Performance Counter project. I've
previously worked with HdrHistorgram [1], which is a histogram
implementation that can record integer and float values with high range and
precission, with fixed space and time costs. Implementations in several
languages exist, but not in C++. The reference Java version [2] provides
several more features, including a concurrent version of the histogram.
Would implementing a generic C++ concurrent HdrHistgram perforamance
counter, supporting all features from the Java version and utilizing HPX's
APIs, be a useful addition?

This idea came to mind beacuse I participated in GSoC last year [3], where
I built a Performance Co-Pilot instrumentation library in Rust, and I had
to integrate HdrHistogram into the API [4].

Any guidance and feedback will be greatly appreciated.

Thanks,
Saurav

[1] - https://hdrhistogram.github.io/HdrHistogram/
[2] - https://github.com/HdrHistogram/HdrHistogram
[3] -
https://summerofcode.withgoogle.com/archive/2017/projects/4793296782098432/
[4] - https://github.com/performancecopilot/hornet#histogram
___
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users