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

[BSE-4386] Add Linux ARM Support #83

Merged
merged 25 commits into from
Jan 2, 2025
Merged

[BSE-4386] Add Linux ARM Support #83

merged 25 commits into from
Jan 2, 2025

Conversation

srilman
Copy link
Contributor

@srilman srilman commented Dec 20, 2024

Changes included in this PR

Add support for Linux on the ARM / Aarch64 architecture. All dependencies already support it, its just a matter of setting up the build correctly

NOTE: I'm a bit blocked on the Azure testing portion, but I want to get the packaging parts to review before going OOO, so opening it up now.

Testing strategy

User facing changes

Checklist

  • Pipelines passed before requesting review. To run CI you must include [run CI] in your commit message.
  • I am familiar with the Contributing Guide
  • I have installed + ran pre-commit hooks.

@srilman srilman marked this pull request as ready for review December 23, 2024 18:00
Copy link
Contributor

@hadia206 hadia206 left a comment

Choose a reason for hiding this comment

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

Left some questions but overall looks good to me.
I skimmed over test files changes. Let me know if I should review closely.

@@ -70,7 +74,7 @@ jobs:
- name: Upload Conda Package
uses: actions/upload-artifact@v4
with:
name: bodo-conda-linux-${{ inputs.python-version }}-community
name: bodo-conda-${{ inputs.python-version }}-community-linux-${{ inputs.arm && 'arm' || 'x86' }}
Copy link
Contributor

Choose a reason for hiding this comment

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

We don't need community in the name anymore.

jobs:
build_bodo_wheels:
permissions:
id-token: write
contents: read
name: Build Bodo Wheels for ${{ inputs.os }}
name: Build Bodo Wheels for ${{ inputs.name }}
Copy link
Contributor

Choose a reason for hiding this comment

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

Thank you :). Having name is more descriptive and easier than numbers 13 and 14

@@ -41,7 +41,7 @@ jobs:
- name: 'Download the Bodo conda'
uses: actions/download-artifact@v4
with:
name: bodo-conda-linux-3.12-community
name: bodo-conda-3.12-community-linux-x86
Copy link
Contributor

Choose a reason for hiding this comment

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

Same. let's remove community

bodo_version: ${{ needs.get_version.outputs.bodo_version }}
secrets: inherit

build_bodo_macos_wheels:
build_bodo_other:
Copy link
Contributor

Choose a reason for hiding this comment

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

why change this name? It's still only Mac?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In expectation of Windows :)

# Don't cancel other jobs if one fails
fail-fast: false
matrix:
# On pull requests, only test building for 3.12
Copy link
Contributor

Choose a reason for hiding this comment

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

why is this the only one we testing its build with PRs?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

So its faster. Plus, GitHub limits the number of concurrent MacOS agents, and so starting 3 at once is too much

std::pair<T, T> get_lower_upper_kth_parallel(std::vector<T, Alloc> my_array,
int64_t total_size, int myrank,
int n_pes, int64_t k,
int type_enum);
int type_enum) {
MPI_Datatype mpi_typ = get_MPI_typ(type_enum);
Copy link
Contributor

Choose a reason for hiding this comment

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

why this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It was causing some compiler errors and warnings in the arm build

} // namespace bodo
} // namespace bodo::tests

// Create an array of the desired type without directly setting the null bit
Copy link
Contributor

Choose a reason for hiding this comment

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

Same, why these changes?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Same as above

@srilman
Copy link
Contributor Author

srilman commented Jan 2, 2025

@IsaacWarren not sure if you looked at this last time, but I fixed the issue in CI so it should be ready now

@srilman srilman changed the title [WIP] Add Linux ARM Support [BSE-4386] Add Linux ARM Support Jan 2, 2025
Copy link
Contributor

@IsaacWarren IsaacWarren left a comment

Choose a reason for hiding this comment

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

Thanks Srinivas!

@@ -37,7 +37,7 @@
create or replace function test_regex_udf(A varchar) RETURNS DOUBLE LANGUAGE JAVASCRIPT AS
$$
try {
return parseInt(A.match(/(\d+).*?(\d+).*?(\d+)/)[2]);
return parseInt(A.match(/(\\d+).*?(\\d+).*?(\\d+)/)[2]);
Copy link
Contributor

Choose a reason for hiding this comment

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

Does this still pass?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The file still runs (technically no tests cause I dont have V8 installed locally) but I would expect it to fail if this was wrong since this is a docstring

@srilman srilman merged commit f410638 into main Jan 2, 2025
36 checks passed
@srilman srilman deleted the slade/linux-arm branch January 2, 2025 16:34
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.

3 participants