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

Putting benchmark comparison in utils #474

Merged
merged 1 commit into from
Oct 6, 2022

Conversation

paigerube14
Copy link
Collaborator

Description

Adding the ability to run the same benchmark_comparison functions for kube-burner, network-perf and router-perf all from the utils folder
With this I moved the touchstone-configs into the utils area so that they are reusable by the different workload types

Fixes

#395
#428

@paigerube14 paigerube14 requested review from mohit-sheth and rsevilla87 and removed request for mohit-sheth September 12, 2022 18:15
@comet-perf-ci
Copy link
Collaborator

Can one of the admins verify this patch?

@jtaleric jtaleric added the ok to test Kick off our CI framework label Sep 12, 2022
@paigerube14
Copy link
Collaborator Author

This PR doesn't cover all workload types. I can completely take out the references to run-compare.sh file but I'm not familiar with the other workload types and might be good to do in separate PR, thoughts?

@@ -0,0 +1,28 @@
{
Copy link
Member

Choose a reason for hiding this comment

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

Why are you adding this config?, norm_ops comparison is already covered by uperf-touchstone.json

Copy link
Collaborator Author

@paigerube14 paigerube14 Sep 14, 2022

Choose a reason for hiding this comment

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

I didn't mean to add that there, I wanted to keep the uperf-touchstone.json file as is and add in other files that added in other data that used to be reported to help resolve: #428
I removed it now

fi
}

run_benchmark_comparison() {
Copy link
Member

Choose a reason for hiding this comment

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

The original logic from networking and router tests was different. This is adding the kube-burner's comparison which I think won't work

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I added a back up way to return the data in utils/csv_modifier.py that I think should cover this. I will run the old way and with my updated code and verify that the data is the same in the sheet.

Copy link
Collaborator Author

@paigerube14 paigerube14 Sep 14, 2022

Choose a reason for hiding this comment

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

@rsevilla87 (or whoever else is going to review this PR) can you request access to these sheets and I'm only able to give access to everyone with the link which I'm not sure we want that.
I used the same UUID and generated both the below sheets
Old sheet: https://docs.google.com/spreadsheets/d/1Xv1LEJkwk9xnKifRTy7GbmBwNl6Wpkrb8lGRfBBVeq0/edit#gid=1904663657

New sheet (added more data points at bottom): https://docs.google.com/spreadsheets/d/1TAG5Fw4F7uppNgH6UsltwwI8G034CZ5zB2TFqgSF9Bg/edit#gid=2039516611
I used export COMPARISON_CONFIG="uperf-touchstone-stream.json uperf-touchstone-rr.json uperf-touchstone-norm.json" to generate this sheet

Any advice on how to order the data in the sheet. That's the one functionality I seem to lose

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Added environment variable to not sort by the end column value that was reordering the network-perf data

Copy link
Collaborator

Choose a reason for hiding this comment

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

ack, thanks
can you add the updated results sheet here if you have one

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@paigerube14 paigerube14 force-pushed the compare_combine branch 2 times, most recently from 9ba44f4 to 8d715e6 Compare September 14, 2022 18:42
@nathan-weinberg
Copy link
Contributor

Commenting for updates as I will have a followup PR after this, happy to review/help in any other way I can as well to get this in

@paigerube14
Copy link
Collaborator Author

@mohit-sheth @rsevilla87 @jtaleric can you PTAL when you get a chance

@paigerube14
Copy link
Collaborator Author

Comment from @mohit-sheth: now added bytes to be transformed into Mb

used below to generate newest sheet

export COMPARISON_CONFIG="uperf-touchstone-stream.json uperf-touchstone-rr.json uperf-touchstone-norm-ltcy.json uperf-touchstone-norm-ops.json"

@mohit-sheth mohit-sheth self-requested a review October 4, 2022 16:45
Copy link
Collaborator

@mohit-sheth mohit-sheth left a comment

Choose a reason for hiding this comment

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

lgtm, we can split the num_pairs in future PRs

@nathan-weinberg
Copy link
Contributor

@mohit-sheth can we merge?

@paigerube14
Copy link
Collaborator Author

This also helps take care of data issues like the below

10-04 14:19:59.936  Traceback (most recent call last):
10-04 14:19:59.936    File "/home/jenkins/ws/workspace/aige-e2e-multibranch_kube-burner/workloads/kube-burner/../../utils/csv_modifier.py", line 70, in <module>
10-04 14:19:59.936      main()
10-04 14:19:59.936    File "/home/jenkins/ws/workspace/aige-e2e-multibranch_kube-burner/workloads/kube-burner/../../utils/csv_modifier.py", line 61, in main
10-04 14:19:59.936      df[df.columns[select_columns:num_columns]] = df[
10-04 14:19:59.936    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/frame.py", line 9558, in apply
10-04 14:19:59.936      return op.apply().__finalize__(self, method="apply")
10-04 14:19:59.937    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/apply.py", line 741, in apply
10-04 14:19:59.937      return self.apply_standard()
10-04 14:19:59.937    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/apply.py", line 868, in apply_standard
10-04 14:19:59.937      results, res_index = self.apply_series_generator()
10-04 14:19:59.937    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/apply.py", line 884, in apply_series_generator
10-04 14:19:59.937      results[i] = self.f(v)
10-04 14:19:59.937    File "/home/jenkins/ws/workspace/aige-e2e-multibranch_kube-burner/workloads/kube-burner/../../utils/csv_modifier.py", line 41, in divide_col
10-04 14:19:59.937      return round(x / float((div_by)), 3)
10-04 14:19:59.937    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/ops/common.py", line 72, in new_method
10-04 14:19:59.937      return method(self, other)
10-04 14:19:59.937    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/arraylike.py", line 127, in __truediv__
10-04 14:19:59.937      return self._arith_method(other, operator.truediv)
10-04 14:19:59.937    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/series.py", line 6262, in _arith_method
10-04 14:19:59.937      return base.IndexOpsMixin._arith_method(self, other, op)
10-04 14:19:59.937    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/base.py", line 1325, in _arith_method
10-04 14:19:59.937      result = ops.arithmetic_op(lvalues, rvalues, op)
10-04 14:19:59.937    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/ops/array_ops.py", line 226, in arithmetic_op
10-04 14:19:59.937      res_values = _na_arithmetic_op(left, right, op)  # type: ignore[arg-type]
10-04 14:19:59.937    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/ops/array_ops.py", line 172, in _na_arithmetic_op
10-04 14:19:59.937      result = _masked_arith_op(left, right, op)
10-04 14:19:59.937    File "/tmp/tmp.GKFIDKNeJ2/lib/python3.9/site-packages/pandas/core/ops/array_ops.py", line 129, in _masked_arith_op
10-04 14:19:59.937      result[mask] = op(xrav[mask], y)
10-04 14:19:59.937  TypeError: unsupported operand type(s) for /: 'str' and 'float'


openshift_login
openshift_login
Copy link
Member

Choose a reason for hiding this comment

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

extra space at end of line can be removed.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

should be removed now

@paigerube14
Copy link
Collaborator Author

@afcollins @rsevilla87 any comments left on this pr, can we get this merged? Thanks

Copy link
Member

@rsevilla87 rsevilla87 left a comment

Choose a reason for hiding this comment

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

lgtm

@rsevilla87 rsevilla87 merged commit 6e6dc1c into cloud-bulldozer:master Oct 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ok to test Kick off our CI framework
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants