chapel-lang / chapel

a Productive Parallel Programming Language
https://chapel-lang.org
Other
1.8k stars 423 forks source link

Chapel Performance Tuning/Optimization Guide / Articles #17611

Open bradcray opened 3 years ago

bradcray commented 3 years ago

At times in the past, we've talked about writing a "Chapel Performance Programming Guide", but have thought of it as being a book or manual of sorts has made it daunting to contemplate starting with all the other work there is to do. In the meantime, we've put together a static web page to head off some of the biggest gotchas ("Are you using --fast?). This issue proposes that we create a section in the Chapel documentation that contains technical notes about performance or pointers to features or resources that performance-minded programmers would want to know about, which would permit adding information incrementally and making it more part of the integrated documentation hierarchy.

In discussing this, we also considered this to be a good topic for blog articles as we move toward launching a blog. The documentation hierarchy could refer to these articles, or snapshot them if they felt appropriate.

bradcray commented 3 years ago

One user comment that led to me filing this was that they were interested in a place where they could look for language/library features that were directly related to performance and fairly unique to Chapel, like optimization flags, unorderedCopy() routines, aggregators (as those come online for general use), etc.

Having articles that describe how we do performance tuning and debugging—maybe using real-life case studies when interesting ones come up—has also been cited as being of interest from time to time.

Best practices for configuration settings, environment variables, and such (or at least, pointers into the key portions of the platform-specific documentation for these things) would also be valuable.