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
Define general benchmark database schema #20885
Comments
Antoine Pitrou / @pitrou: |
Wes McKinney / @wesm:
|
Antoine Pitrou / @pitrou: |
Tanya Schlusser / @tanyaschlusser: |
Areg Melik-Adamyan / @aregm: So replies to original comments:
|
Areg Melik-Adamyan / @aregm: Meanwhile I have created the first version of teh spec to work on - https://cwiki.apache.org/confluence/display/ARROW/Performance+Dashboard |
Tanya Schlusser / @tanyaschlusser: Happy to modify per feedback—or leave this to a more experienced person if I'm becoming the slow link. |
Antoine Pitrou / @pitrou:
|
|
Not really, for example IBM POWER CPUs can have 2, 4 or 8 threads per core. |
Areg Melik-Adamyan / @aregm: |
Antoine Pitrou / @pitrou: As for mainframes, no, but AFAIK there are regular Linux-based (or AIX-based) POWER servers. |
Wes McKinney / @wesm: |
Tanya Schlusser / @tanyaschlusser:
Summary of changes:
Questions
|
Areg Melik-Adamyan / @aregm: |
Tanya Schlusser / @tanyaschlusser: |
Areg Melik-Adamyan / @aregm: |
Tanya Schlusser / @tanyaschlusser: One concern, of course, is that people get wildly different results than a benchmark says, and may say "Oh boo–the representative person from the company made fake results that I can't replicate on my machine" ... and with details about a system, performance differences can maybe be traced back to differences in setup, because they were recorded. Not all fields need to be filled out all the time. My priorities are:
|
Antoine Pitrou / @pitrou: So big-endian support in Arrow would probably not be a roadblock. |
Antoine Pitrou / @pitrou: The overclocked frequency may vary (which we could also call "actual frequency"), the rest should be the same. |
Tanya Schlusser / @tanyaschlusser:
|
Areg Melik-Adamyan / @aregm:
I think we need to take a step back, and sync and agree with the @wesm and @pitrou on the goals for this little project:
|
Wes McKinney / @wesm: From my perspective I want the following in the short term
|
Antoine Pitrou / @pitrou: Just to answer one comment:
It's a bit more involved than that. For example the speed of creating an Arrow array (or an Arrow dataframe) from Python objects is important, and this requires specific optimizations inside Arrow. Technically we could benchmark it using the C++ infrastructure, it's just massively easier to write the benchmarks in Python using ASV, so that's what we're doing now. That said, yes, recording C++ benchmark results is a good first-priority goal. The thing to keep in mind is that we don't want the adopted DB schema to limit ourselves in this regard. (also, some implementations are not based on the C++ library, they are independent reimplementations of the Arrow data model, e.g. Java, C# or Rust) |
Antoine Pitrou / @pitrou: |
Some possible attributes that the benchmark database should track, to permit heterogeneity of hardware and programming languages
Timestamp of benchmark run
Git commit hash of codebase
Machine unique name (sort of the "user id")
CPU identification for machine, and clock frequency (in case of overclocking)
CPU cache sizes (L1/L2/L3)
Whether or not CPU throttling is enabled (if it can be easily determined)
RAM size
GPU identification (if any)
Benchmark unique name
Programming language(s) associated with benchmark (e.g. a benchmark
may involve both C++ and Python)
Benchmark time, plus mean and standard deviation if available, else NULL
see discussion on mailing list https://lists.apache.org/thread.html/278e573445c83bbd8ee66474b9356c5291a16f6b6eca11dbbe4b473a@%3Cdev.arrow.apache.org%3E
Reporter: Wes McKinney / @wesm
Assignee: Tanya Schlusser / @tanyaschlusser
Related issues:
Original Issue Attachments:
PRs and other links:
Note: This issue was originally created as ARROW-4313. Please see the migration documentation for further details.
The text was updated successfully, but these errors were encountered: