Repository files navigation

parcels-benchmarks

Pixi Badge

This repository houses performance benchmarks for Parcels.

Development instructions

This project uses a combination of Pixi, ASV, and intake-xarray to coordinate the setting up and running of benchmarks.

  • Scripts are used to download the datasets required into the correct location
  • intake-xarray is used to define data catalogues which can be easily accessed from within benchmark scripts
  • ASV is used to run the benchmarks (see the Writing the benchmarks section).
  • Pixi is used to orchestrate all the above into a convenient, user friendly workflow

You can run pixi task list to see the list of available tasks in the workspace.

In brief, you can set up the data and run the benchmarks by doing:

  • install Pixicurl -fsSL https://pixi.sh/install.sh | bash
  • pixi install
  • PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run benchmarks

Note

The syntax PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run ... set's the environment variable for the task, but you can set environment variables in other ways as well.

Important

Currently, you will need at least 50GB of disk space available to store the unzipped benchmark data. Since the zips are deleted after downloaded and extracted, this ends up being about 80GB of disk space needed. You need to be explicit to determine where the benchmark data will be saved by setting the PARCELS_BENCHMARKS_DATA_FOLDER environment variable. This environment variable is used in the downloading of the data and definition of the benchmarks.

To view the benchmark data

  • pixi run asv publish
  • pixi run asv preview

Contributing benchmark runs

We value seeing how Parcels benchmarks perform on a variety of systems. When you run the benchmarks, this adds data to the results/ subdirectory in this repository. After running the benchmarks, you can commit the changes made to the results/ subdirectory and open a pull request to contribute your benchmark results.

Parcels Community Members

Members of the Parcels community can contribute benchmark data using the following steps

  1. Create a fork of this repository

  2. Clone your fork onto your system

git clone --recurse-submodules git@github.com:<your-github-handle>/parcels-benchmarks.git
  1. Run the benchmarks
cd ~/parcels-benchmarks
pixi run asv run
  1. Commit your benchmark data and push the changes back to your fork, e.g.
git add results
git commit -m "Add benchmark data"
git push origin main
  1. Open a pull request from your fork

Adding benchmarks

Adding benchmarks for parcels typically involves adding a dataset and defining the benchmarks you want to run.

Adding new data

Data is hosted remotely on a SurfDrive managed by the Parcels developers. You will need to open an issue on this repository to start the process of getting your data hosted in the shared SurfDrive. Once your data is hosted in the shared SurfDrive, you can easily add your dataset to the benchmark dataset catalogue by modifying catalogs/parcels-benchmarks/catalog.yml.

In the benchmark you can now use this catalogue entry.

Writing the benchmarks

This repository uses ASV for running benchmarks. You can add benchmarks by including a python script in the benchmarks/ subdirectory. Within each benchmarks/*.py file, we ask that you define a class for the set of benchmarks you plan to run for your dataset. You can use the existing benchmarks as a good starting point for writing your benchmarks.

To learn more about writing benchmarks compatible with ASV, see the ASV "Writing Benchmarks" documentation

About

Repository for real-world benchmarks for Parcels v4 vs v3

Resources

Stars

3 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

parcels-benchmarks

Pixi Badge

This repository houses performance benchmarks for Parcels.

Development instructions

This project uses a combination of Pixi, ASV, and intake-xarray to coordinate the setting up and running of benchmarks.

  • Scripts are used to download the datasets required into the correct location
  • intake-xarray is used to define data catalogues which can be easily accessed from within benchmark scripts
  • ASV is used to run the benchmarks (see the Writing the benchmarks section).
  • Pixi is used to orchestrate all the above into a convenient, user friendly workflow

You can run pixi task list to see the list of available tasks in the workspace.

In brief, you can set up the data and run the benchmarks by doing:

  • install Pixicurl -fsSL https://pixi.sh/install.sh | bash
  • pixi install
  • PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run benchmarks

Note

The syntax PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run ... set's the environment variable for the task, but you can set environment variables in other ways as well.

Important

Currently, you will need at least 50GB of disk space available to store the unzipped benchmark data. Since the zips are deleted after downloaded and extracted, this ends up being about 80GB of disk space needed. You need to be explicit to determine where the benchmark data will be saved by setting the PARCELS_BENCHMARKS_DATA_FOLDER environment variable. This environment variable is used in the downloading of the data and definition of the benchmarks.

To view the benchmark data

  • pixi run asv publish
  • pixi run asv preview

Contributing benchmark runs

We value seeing how Parcels benchmarks perform on a variety of systems. When you run the benchmarks, this adds data to the results/ subdirectory in this repository. After running the benchmarks, you can commit the changes made to the results/ subdirectory and open a pull request to contribute your benchmark results.

Parcels Community Members

Members of the Parcels community can contribute benchmark data using the following steps

  1. Create a fork of this repository

  2. Clone your fork onto your system

git clone --recurse-submodules git@github.com:<your-github-handle>/parcels-benchmarks.git
  1. Run the benchmarks
cd ~/parcels-benchmarks
pixi run asv run
  1. Commit your benchmark data and push the changes back to your fork, e.g.
git add results
git commit -m "Add benchmark data"
git push origin main
  1. Open a pull request from your fork

Adding benchmarks

Adding benchmarks for parcels typically involves adding a dataset and defining the benchmarks you want to run.

Adding new data

Data is hosted remotely on a SurfDrive managed by the Parcels developers. You will need to open an issue on this repository to start the process of getting your data hosted in the shared SurfDrive. Once your data is hosted in the shared SurfDrive, you can easily add your dataset to the benchmark dataset catalogue by modifying catalogs/parcels-benchmarks/catalog.yml.

In the benchmark you can now use this catalogue entry.

Writing the benchmarks

This repository uses ASV for running benchmarks. You can add benchmarks by including a python script in the benchmarks/ subdirectory. Within each benchmarks/*.py file, we ask that you define a class for the set of benchmarks you plan to run for your dataset. You can use the existing benchmarks as a good starting point for writing your benchmarks.

To learn more about writing benchmarks compatible with ASV, see the ASV "Writing Benchmarks" documentation

About

Repository for real-world benchmarks for Parcels v4 vs v3

Resources

Stars

3 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

parcels-benchmarks

Pixi Badge

This repository houses performance benchmarks for Parcels.

Development instructions

This project uses a combination of Pixi, ASV, and intake-xarray to coordinate the setting up and running of benchmarks.

  • Scripts are used to download the datasets required into the correct location
  • intake-xarray is used to define data catalogues which can be easily accessed from within benchmark scripts
  • ASV is used to run the benchmarks (see the Writing the benchmarks section).
  • Pixi is used to orchestrate all the above into a convenient, user friendly workflow

You can run pixi task list to see the list of available tasks in the workspace.

In brief, you can set up the data and run the benchmarks by doing:

  • install Pixicurl -fsSL https://pixi.sh/install.sh | bash
  • pixi install
  • PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run benchmarks

Note

The syntax PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run ... set's the environment variable for the task, but you can set environment variables in other ways as well.

Important

Currently, you will need at least 50GB of disk space available to store the unzipped benchmark data. Since the zips are deleted after downloaded and extracted, this ends up being about 80GB of disk space needed. You need to be explicit to determine where the benchmark data will be saved by setting the PARCELS_BENCHMARKS_DATA_FOLDER environment variable. This environment variable is used in the downloading of the data and definition of the benchmarks.

To view the benchmark data

  • pixi run asv publish
  • pixi run asv preview

Contributing benchmark runs

We value seeing how Parcels benchmarks perform on a variety of systems. When you run the benchmarks, this adds data to the results/ subdirectory in this repository. After running the benchmarks, you can commit the changes made to the results/ subdirectory and open a pull request to contribute your benchmark results.

Parcels Community Members

Members of the Parcels community can contribute benchmark data using the following steps

  1. Create a fork of this repository

  2. Clone your fork onto your system

git clone --recurse-submodules git@github.com:<your-github-handle>/parcels-benchmarks.git
  1. Run the benchmarks
cd ~/parcels-benchmarks
pixi run asv run
  1. Commit your benchmark data and push the changes back to your fork, e.g.
git add results
git commit -m "Add benchmark data"
git push origin main
  1. Open a pull request from your fork

Adding benchmarks

Adding benchmarks for parcels typically involves adding a dataset and defining the benchmarks you want to run.

Adding new data

Data is hosted remotely on a SurfDrive managed by the Parcels developers. You will need to open an issue on this repository to start the process of getting your data hosted in the shared SurfDrive. Once your data is hosted in the shared SurfDrive, you can easily add your dataset to the benchmark dataset catalogue by modifying catalogs/parcels-benchmarks/catalog.yml.

In the benchmark you can now use this catalogue entry.

Writing the benchmarks

This repository uses ASV for running benchmarks. You can add benchmarks by including a python script in the benchmarks/ subdirectory. Within each benchmarks/*.py file, we ask that you define a class for the set of benchmarks you plan to run for your dataset. You can use the existing benchmarks as a good starting point for writing your benchmarks.

To learn more about writing benchmarks compatible with ASV, see the ASV "Writing Benchmarks" documentation

About

Repository for real-world benchmarks for Parcels v4 vs v3

Resources

Stars

3 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

parcels-benchmarks

Pixi Badge

This repository houses performance benchmarks for Parcels.

Development instructions

This project uses a combination of Pixi, ASV, and intake-xarray to coordinate the setting up and running of benchmarks.

  • Scripts are used to download the datasets required into the correct location
  • intake-xarray is used to define data catalogues which can be easily accessed from within benchmark scripts
  • ASV is used to run the benchmarks (see the Writing the benchmarks section).
  • Pixi is used to orchestrate all the above into a convenient, user friendly workflow

You can run pixi task list to see the list of available tasks in the workspace.

In brief, you can set up the data and run the benchmarks by doing:

  • install Pixicurl -fsSL https://pixi.sh/install.sh | bash
  • pixi install
  • PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run benchmarks

Note

The syntax PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run ... set's the environment variable for the task, but you can set environment variables in other ways as well.

Important

Currently, you will need at least 50GB of disk space available to store the unzipped benchmark data. Since the zips are deleted after downloaded and extracted, this ends up being about 80GB of disk space needed. You need to be explicit to determine where the benchmark data will be saved by setting the PARCELS_BENCHMARKS_DATA_FOLDER environment variable. This environment variable is used in the downloading of the data and definition of the benchmarks.

To view the benchmark data

  • pixi run asv publish
  • pixi run asv preview

Contributing benchmark runs

We value seeing how Parcels benchmarks perform on a variety of systems. When you run the benchmarks, this adds data to the results/ subdirectory in this repository. After running the benchmarks, you can commit the changes made to the results/ subdirectory and open a pull request to contribute your benchmark results.

Parcels Community Members

Members of the Parcels community can contribute benchmark data using the following steps

  1. Create a fork of this repository

  2. Clone your fork onto your system

git clone --recurse-submodules git@github.com:<your-github-handle>/parcels-benchmarks.git
  1. Run the benchmarks
cd ~/parcels-benchmarks
pixi run asv run
  1. Commit your benchmark data and push the changes back to your fork, e.g.
git add results
git commit -m "Add benchmark data"
git push origin main
  1. Open a pull request from your fork

Adding benchmarks

Adding benchmarks for parcels typically involves adding a dataset and defining the benchmarks you want to run.

Adding new data

Data is hosted remotely on a SurfDrive managed by the Parcels developers. You will need to open an issue on this repository to start the process of getting your data hosted in the shared SurfDrive. Once your data is hosted in the shared SurfDrive, you can easily add your dataset to the benchmark dataset catalogue by modifying catalogs/parcels-benchmarks/catalog.yml.

In the benchmark you can now use this catalogue entry.

Writing the benchmarks

This repository uses ASV for running benchmarks. You can add benchmarks by including a python script in the benchmarks/ subdirectory. Within each benchmarks/*.py file, we ask that you define a class for the set of benchmarks you plan to run for your dataset. You can use the existing benchmarks as a good starting point for writing your benchmarks.

To learn more about writing benchmarks compatible with ASV, see the ASV "Writing Benchmarks" documentation

About

Repository for real-world benchmarks for Parcels v4 vs v3

Resources

Stars

3 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

parcels-benchmarks

Pixi Badge

This repository houses performance benchmarks for Parcels.

Development instructions

This project uses a combination of Pixi, ASV, and intake-xarray to coordinate the setting up and running of benchmarks.

  • Scripts are used to download the datasets required into the correct location
  • intake-xarray is used to define data catalogues which can be easily accessed from within benchmark scripts
  • ASV is used to run the benchmarks (see the Writing the benchmarks section).
  • Pixi is used to orchestrate all the above into a convenient, user friendly workflow

You can run pixi task list to see the list of available tasks in the workspace.

In brief, you can set up the data and run the benchmarks by doing:

  • install Pixicurl -fsSL https://pixi.sh/install.sh | bash
  • pixi install
  • PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run benchmarks

Note

The syntax PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run ... set's the environment variable for the task, but you can set environment variables in other ways as well.

Important

Currently, you will need at least 50GB of disk space available to store the unzipped benchmark data. Since the zips are deleted after downloaded and extracted, this ends up being about 80GB of disk space needed. You need to be explicit to determine where the benchmark data will be saved by setting the PARCELS_BENCHMARKS_DATA_FOLDER environment variable. This environment variable is used in the downloading of the data and definition of the benchmarks.

To view the benchmark data

  • pixi run asv publish
  • pixi run asv preview

Contributing benchmark runs

We value seeing how Parcels benchmarks perform on a variety of systems. When you run the benchmarks, this adds data to the results/ subdirectory in this repository. After running the benchmarks, you can commit the changes made to the results/ subdirectory and open a pull request to contribute your benchmark results.

Parcels Community Members

Members of the Parcels community can contribute benchmark data using the following steps

  1. Create a fork of this repository

  2. Clone your fork onto your system

git clone --recurse-submodules git@github.com:<your-github-handle>/parcels-benchmarks.git
  1. Run the benchmarks
cd ~/parcels-benchmarks
pixi run asv run
  1. Commit your benchmark data and push the changes back to your fork, e.g.
git add results
git commit -m "Add benchmark data"
git push origin main
  1. Open a pull request from your fork

Adding benchmarks

Adding benchmarks for parcels typically involves adding a dataset and defining the benchmarks you want to run.

Adding new data

Data is hosted remotely on a SurfDrive managed by the Parcels developers. You will need to open an issue on this repository to start the process of getting your data hosted in the shared SurfDrive. Once your data is hosted in the shared SurfDrive, you can easily add your dataset to the benchmark dataset catalogue by modifying catalogs/parcels-benchmarks/catalog.yml.

In the benchmark you can now use this catalogue entry.

Writing the benchmarks

This repository uses ASV for running benchmarks. You can add benchmarks by including a python script in the benchmarks/ subdirectory. Within each benchmarks/*.py file, we ask that you define a class for the set of benchmarks you plan to run for your dataset. You can use the existing benchmarks as a good starting point for writing your benchmarks.

To learn more about writing benchmarks compatible with ASV, see the ASV "Writing Benchmarks" documentation

About

Repository for real-world benchmarks for Parcels v4 vs v3

Resources

Stars

3 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

parcels-benchmarks

Pixi Badge

This repository houses performance benchmarks for Parcels.

Development instructions

This project uses a combination of Pixi, ASV, and intake-xarray to coordinate the setting up and running of benchmarks.

  • Scripts are used to download the datasets required into the correct location
  • intake-xarray is used to define data catalogues which can be easily accessed from within benchmark scripts
  • ASV is used to run the benchmarks (see the Writing the benchmarks section).
  • Pixi is used to orchestrate all the above into a convenient, user friendly workflow

You can run pixi task list to see the list of available tasks in the workspace.

In brief, you can set up the data and run the benchmarks by doing:

  • install Pixicurl -fsSL https://pixi.sh/install.sh | bash
  • pixi install
  • PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run benchmarks

Note

The syntax PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run ... set's the environment variable for the task, but you can set environment variables in other ways as well.

Important

Currently, you will need at least 50GB of disk space available to store the unzipped benchmark data. Since the zips are deleted after downloaded and extracted, this ends up being about 80GB of disk space needed. You need to be explicit to determine where the benchmark data will be saved by setting the PARCELS_BENCHMARKS_DATA_FOLDER environment variable. This environment variable is used in the downloading of the data and definition of the benchmarks.

To view the benchmark data

  • pixi run asv publish
  • pixi run asv preview

Contributing benchmark runs

We value seeing how Parcels benchmarks perform on a variety of systems. When you run the benchmarks, this adds data to the results/ subdirectory in this repository. After running the benchmarks, you can commit the changes made to the results/ subdirectory and open a pull request to contribute your benchmark results.

Parcels Community Members

Members of the Parcels community can contribute benchmark data using the following steps

  1. Create a fork of this repository

  2. Clone your fork onto your system

git clone --recurse-submodules git@github.com:<your-github-handle>/parcels-benchmarks.git
  1. Run the benchmarks
cd ~/parcels-benchmarks
pixi run asv run
  1. Commit your benchmark data and push the changes back to your fork, e.g.
git add results
git commit -m "Add benchmark data"
git push origin main
  1. Open a pull request from your fork

Adding benchmarks

Adding benchmarks for parcels typically involves adding a dataset and defining the benchmarks you want to run.

Adding new data

Data is hosted remotely on a SurfDrive managed by the Parcels developers. You will need to open an issue on this repository to start the process of getting your data hosted in the shared SurfDrive. Once your data is hosted in the shared SurfDrive, you can easily add your dataset to the benchmark dataset catalogue by modifying catalogs/parcels-benchmarks/catalog.yml.

In the benchmark you can now use this catalogue entry.

Writing the benchmarks

This repository uses ASV for running benchmarks. You can add benchmarks by including a python script in the benchmarks/ subdirectory. Within each benchmarks/*.py file, we ask that you define a class for the set of benchmarks you plan to run for your dataset. You can use the existing benchmarks as a good starting point for writing your benchmarks.

To learn more about writing benchmarks compatible with ASV, see the ASV "Writing Benchmarks" documentation

About

Repository for real-world benchmarks for Parcels v4 vs v3

Resources

Stars

3 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

parcels-benchmarks

Pixi Badge

This repository houses performance benchmarks for Parcels.

Development instructions

This project uses a combination of Pixi, ASV, and intake-xarray to coordinate the setting up and running of benchmarks.

  • Scripts are used to download the datasets required into the correct location
  • intake-xarray is used to define data catalogues which can be easily accessed from within benchmark scripts
  • ASV is used to run the benchmarks (see the Writing the benchmarks section).
  • Pixi is used to orchestrate all the above into a convenient, user friendly workflow

You can run pixi task list to see the list of available tasks in the workspace.

In brief, you can set up the data and run the benchmarks by doing:

  • install Pixicurl -fsSL https://pixi.sh/install.sh | bash
  • pixi install
  • PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run benchmarks

Note

The syntax PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run ... set's the environment variable for the task, but you can set environment variables in other ways as well.

Important

Currently, you will need at least 50GB of disk space available to store the unzipped benchmark data. Since the zips are deleted after downloaded and extracted, this ends up being about 80GB of disk space needed. You need to be explicit to determine where the benchmark data will be saved by setting the PARCELS_BENCHMARKS_DATA_FOLDER environment variable. This environment variable is used in the downloading of the data and definition of the benchmarks.

To view the benchmark data

  • pixi run asv publish
  • pixi run asv preview

Contributing benchmark runs

We value seeing how Parcels benchmarks perform on a variety of systems. When you run the benchmarks, this adds data to the results/ subdirectory in this repository. After running the benchmarks, you can commit the changes made to the results/ subdirectory and open a pull request to contribute your benchmark results.

Parcels Community Members

Members of the Parcels community can contribute benchmark data using the following steps

  1. Create a fork of this repository

  2. Clone your fork onto your system

git clone --recurse-submodules git@github.com:<your-github-handle>/parcels-benchmarks.git
  1. Run the benchmarks
cd ~/parcels-benchmarks
pixi run asv run
  1. Commit your benchmark data and push the changes back to your fork, e.g.
git add results
git commit -m "Add benchmark data"
git push origin main
  1. Open a pull request from your fork

Adding benchmarks

Adding benchmarks for parcels typically involves adding a dataset and defining the benchmarks you want to run.

Adding new data

Data is hosted remotely on a SurfDrive managed by the Parcels developers. You will need to open an issue on this repository to start the process of getting your data hosted in the shared SurfDrive. Once your data is hosted in the shared SurfDrive, you can easily add your dataset to the benchmark dataset catalogue by modifying catalogs/parcels-benchmarks/catalog.yml.

In the benchmark you can now use this catalogue entry.

Writing the benchmarks

This repository uses ASV for running benchmarks. You can add benchmarks by including a python script in the benchmarks/ subdirectory. Within each benchmarks/*.py file, we ask that you define a class for the set of benchmarks you plan to run for your dataset. You can use the existing benchmarks as a good starting point for writing your benchmarks.

To learn more about writing benchmarks compatible with ASV, see the ASV "Writing Benchmarks" documentation

About

Repository for real-world benchmarks for Parcels v4 vs v3

Resources

Stars

3 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

parcels-benchmarks

Pixi Badge

This repository houses performance benchmarks for Parcels.

Development instructions

This project uses a combination of Pixi, ASV, and intake-xarray to coordinate the setting up and running of benchmarks.

  • Scripts are used to download the datasets required into the correct location
  • intake-xarray is used to define data catalogues which can be easily accessed from within benchmark scripts
  • ASV is used to run the benchmarks (see the Writing the benchmarks section).
  • Pixi is used to orchestrate all the above into a convenient, user friendly workflow

You can run pixi task list to see the list of available tasks in the workspace.

In brief, you can set up the data and run the benchmarks by doing:

  • install Pixicurl -fsSL https://pixi.sh/install.sh | bash
  • pixi install
  • PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run benchmarks

Note

The syntax PARCELS_BENCHMARKS_DATA_FOLDER=./data pixi run ... set's the environment variable for the task, but you can set environment variables in other ways as well.

Important

Currently, you will need at least 50GB of disk space available to store the unzipped benchmark data. Since the zips are deleted after downloaded and extracted, this ends up being about 80GB of disk space needed. You need to be explicit to determine where the benchmark data will be saved by setting the PARCELS_BENCHMARKS_DATA_FOLDER environment variable. This environment variable is used in the downloading of the data and definition of the benchmarks.

To view the benchmark data

  • pixi run asv publish
  • pixi run asv preview

Contributing benchmark runs

We value seeing how Parcels benchmarks perform on a variety of systems. When you run the benchmarks, this adds data to the results/ subdirectory in this repository. After running the benchmarks, you can commit the changes made to the results/ subdirectory and open a pull request to contribute your benchmark results.

Parcels Community Members

Members of the Parcels community can contribute benchmark data using the following steps

  1. Create a fork of this repository

  2. Clone your fork onto your system

git clone --recurse-submodules git@github.com:<your-github-handle>/parcels-benchmarks.git
  1. Run the benchmarks
cd ~/parcels-benchmarks
pixi run asv run
  1. Commit your benchmark data and push the changes back to your fork, e.g.
git add results
git commit -m "Add benchmark data"
git push origin main
  1. Open a pull request from your fork

Adding benchmarks

Adding benchmarks for parcels typically involves adding a dataset and defining the benchmarks you want to run.

Adding new data

Data is hosted remotely on a SurfDrive managed by the Parcels developers. You will need to open an issue on this repository to start the process of getting your data hosted in the shared SurfDrive. Once your data is hosted in the shared SurfDrive, you can easily add your dataset to the benchmark dataset catalogue by modifying catalogs/parcels-benchmarks/catalog.yml.

In the benchmark you can now use this catalogue entry.

Writing the benchmarks

This repository uses ASV for running benchmarks. You can add benchmarks by including a python script in the benchmarks/ subdirectory. Within each benchmarks/*.py file, we ask that you define a class for the set of benchmarks you plan to run for your dataset. You can use the existing benchmarks as a good starting point for writing your benchmarks.

To learn more about writing benchmarks compatible with ASV, see the ASV "Writing Benchmarks" documentation

About

Repository for real-world benchmarks for Parcels v4 vs v3

Resources

Stars

3 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages