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

coz: Causal profiler #3794

Merged
merged 24 commits into from Jun 10, 2021
Merged

Conversation

klimkin
Copy link
Contributor

@klimkin klimkin commented Dec 4, 2020

Coz is a new kind of profiler that unlocks optimization opportunities
missed by traditional profilers. Coz employs a novel technique we call
causal profiling that measures optimization potential. This measurement
matches developers' assumptions about profilers: that optimizing
highly-ranked code will have the greatest impact on performance. Causal
profiling measures optimization potential for serial, parallel, and
asynchronous programs without instrumentation of special handling for
library calls and concurrency primitives. Instead, a causal profiler
uses performance experiments to predict the effect of optimizations.
This allows the profiler to establish causality: "optimizing function X
will have effect Y," exactly the measurement developers had assumed they
were getting all along.

https://github.com/plasma-umass/coz

Specify library name and version: coz/0.2.2

  • I've read the guidelines for contributing.
  • I've followed the PEP8 style guides for Python code in the recipes.
  • I've used the latest Conan client version.
  • I've tried at least one configuration locally with the
    conan-center hook activated.

Coz is a new kind of profiler that unlocks optimization opportunities
missed by traditional profilers. Coz employs a novel technique we call
causal profiling that measures optimization potential. This measurement
matches developers' assumptions about profilers: that optimizing
highly-ranked code will have the greatest impact on performance. Causal
profiling measures optimization potential for serial, parallel, and
asynchronous programs without instrumentation of special handling for
library calls and concurrency primitives. Instead, a causal profiler
uses performance experiments to predict the effect of optimizations.
This allows the profiler to establish causality: "optimizing function X
will have effect Y," exactly the measurement developers had assumed they
were getting all along.

https://github.com/plasma-umass/coz
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@klimkin
Copy link
Contributor Author

klimkin commented Dec 14, 2020

@prince-chrismc Thank you for prompt review. I will try to push CMake build upstream in the next two weeks.

@klimkin
Copy link
Contributor Author

klimkin commented Jan 9, 2021

Making some progress here: plasma-umass/coz#178

@klimkin klimkin mentioned this pull request Jan 14, 2021
4 tasks
@stale
Copy link

stale bot commented Feb 8, 2021

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Feb 8, 2021
@conan-center-bot

This comment has been minimized.

prince-chrismc
prince-chrismc previously approved these changes May 27, 2021
SSE4
SSE4 previously approved these changes May 28, 2021
Comment on lines 38 to 51
__cmake = None

@property
def _cmake(self):
if self.__cmake is None:
self.__cmake = CMake(self)
return self.__cmake

def build(self):
self._cmake.configure()
self._cmake.build()

def package(self):
self._cmake.install()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we use another template usually, I don't say this one is bad, but it's harder to maintain when there are several conventions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See 1d5defd

Comment on lines 57 to 58
if self.settings.os == "Linux":
self.cpp_info.system_libs = ["dl", "rt", "pthread"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

private dependencies, so probably useless because coz is always shared, but it doesn't hurt I guess

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See 95b1852

@uilianries
Copy link
Member

@klimkin please, consider SpaceIm's review, so we are good to go.

@klimkin klimkin dismissed stale reviews from SSE4 and prince-chrismc via 278e676 June 8, 2021 21:34
klimkin and others added 6 commits June 8, 2021 14:34
Co-authored-by: SpaceIm <30052553+SpaceIm@users.noreply.github.com>
Co-authored-by: SpaceIm <30052553+SpaceIm@users.noreply.github.com>
Co-authored-by: SpaceIm <30052553+SpaceIm@users.noreply.github.com>
Co-authored-by: SpaceIm <30052553+SpaceIm@users.noreply.github.com>
@conan-center-bot
Copy link
Collaborator

All green in build 29 (95b185257b53f5cd20557a072f8300e27f80956c):

  • coz/cci.20210322@:
    All packages built successfully! (All logs)

@conan-center-bot conan-center-bot merged commit 1be2afb into conan-io:master Jun 10, 2021
@adklimki adklimki deleted the feature/add-coz branch June 14, 2021 22:32
madebr pushed a commit to madebr/conan-center-index that referenced this pull request Jun 21, 2021
* coz: Causal profiler

Coz is a new kind of profiler that unlocks optimization opportunities
missed by traditional profilers. Coz employs a novel technique we call
causal profiling that measures optimization potential. This measurement
matches developers' assumptions about profilers: that optimizing
highly-ranked code will have the greatest impact on performance. Causal
profiling measures optimization potential for serial, parallel, and
asynchronous programs without instrumentation of special handling for
library calls and concurrency primitives. Instead, a causal profiler
uses performance experiments to predict the effect of optimizations.
This allows the profiler to establish causality: "optimizing function X
will have effect Y," exactly the measurement developers had assumed they
were getting all along.

https://github.com/plasma-umass/coz

* Cleanup config_options, since options.fPIC does not exist

* Patch Python version

* Disable incompatible Macos builds

* Build test_package files with debug info

* Implement code-review fixes

* Use CMake from the package sources

* Do not package lib/cmake

* Pushed patch to upstream

* Do not build for GCC version <5.0

* Require C++11 to match parent

* Update recipes/coz/all/test_package/conanfile.py

Co-authored-by: Chris Mc <prince.chrismc@gmail.com>

* Update recipes/coz/all/conanfile.py

Co-authored-by: Uilian Ries <uilianries@gmail.com>

* Apply suggestions from code review

Co-authored-by: Uilian Ries <uilianries@gmail.com>

* Update recipes/coz/all/conanfile.py

Co-authored-by: Uilian Ries <uilianries@gmail.com>

* Update recipes/coz/all/conanfile.py

Co-authored-by: Uilian Ries <uilianries@gmail.com>

* Update recipes/coz/all/test_package/CMakeLists.txt

Co-authored-by: Uilian Ries <uilianries@gmail.com>

* Minor cleanup

* Update recipes/coz/all/conanfile.py

Co-authored-by: SpaceIm <30052553+SpaceIm@users.noreply.github.com>

* Update recipes/coz/all/conanfile.py

Co-authored-by: SpaceIm <30052553+SpaceIm@users.noreply.github.com>

* Update recipes/coz/all/conanfile.py

Co-authored-by: SpaceIm <30052553+SpaceIm@users.noreply.github.com>

* Update recipes/coz/all/CMakeLists.txt

Co-authored-by: SpaceIm <30052553+SpaceIm@users.noreply.github.com>

* Use cmake template similar to other recipes

* Remove private system_libs dependencies since building always shared

Co-authored-by: Chris Mc <prince.chrismc@gmail.com>
Co-authored-by: Uilian Ries <uilianries@gmail.com>
Co-authored-by: SpaceIm <30052553+SpaceIm@users.noreply.github.com>
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

Successfully merging this pull request may close these issues.

None yet

7 participants