Skip to content

Add note for WRF ARM build#1535

Closed
yip111 wants to merge 6 commits intowrf-model:developfrom
yip111:release-v4.2
Closed

Add note for WRF ARM build#1535
yip111 wants to merge 6 commits intowrf-model:developfrom
yip111:release-v4.2

Conversation

@yip111
Copy link
Contributor

@yip111 yip111 commented Jul 15, 2021

TYPE:WRF 4.2 Porting Guide for ARM

KEYWORDS: ARM, aarch64, Porting

DESCRIPTION OF CHANGES:
Problem:
WRF cannot run directly on the ARM machine.

Solution:
Edit the arch/configure.defaults file and add the aarch64 GNU & OPEN MPI compile options

LIST OF MODIFIED FILES:
M arch/configure.defaults
M README_ARM.md

@yip111 yip111 requested review from a team as code owners July 15, 2021 11:26
@martin-g
Copy link

Hello!

I am also interested in support for Linux ARM64!
If the project maintainers would need a Linux ARM64 VM for long-term testing/CI purposes then please let me know!

@davegill
Copy link
Contributor

@weiwangncar @dudhia @kkeene44 @smileMchen @yip111
Folks,
What do we think about this PR?

Specifically, I am wondering if this should be broken into 2 pieces. The ARM specific update to the arch/configure.defaults file would be one PR. The README could be a second PR. We have never really thought about putting build info in the repository before.

Opinions?

@weiwangncar
Copy link
Collaborator

@yip111 @davegill I'd suggest putting the README file in the doc/ directory.

@dudhia
Copy link
Collaborator

dudhia commented Sep 14, 2021 via email

@jamiebresch
Copy link
Contributor

Seems a useful note, but probably should not be committed to the repository, especially not with the name README_ARM.
Is -march=armv8.2-a the only ARM specific setting? armv8.2-a will be architecture-dependent. It will be enough to just point out the compiler ARM options.

@weiwangncar
Copy link
Collaborator

Should have read the README file. I agree as the file stands now, it probably should not be committed to the repository. It looks like general info for installing software before compiling WRF. If it can be made general, it may be useful for general users.


#insert new stanza here
################################################## #########
#ARCH Linux aarch64,gnu OpenMPI #serial smpar dmpar dm+sm

Choose a reason for hiding this comment

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

I think the next line should be just #.
Also all lines below the stanza should not have any indentation.
Without these corrections I was not able to build it.

@davegill
Copy link
Contributor

@yip111
Have you tried to see if version 4.3 works? I was able to build WRF on a raspberry pi, for example.

@davegill davegill changed the base branch from release-v4.2 to develop September 15, 2021 18:00
@martin-g
Copy link

@davegill I've just tested this PR with WRF-4.3 instead of 4.2 and all is fine!

@yip111
Copy link
Contributor Author

yip111 commented Sep 16, 2021

Have you tried to see if version 4.3 works? I was able to build WRF on a raspberry pi, for example.

@davegill Yes, it also works on version 4.3.

@yip111
Copy link
Contributor Author

yip111 commented Sep 16, 2021

Specifically, I am wondering if this should be broken into 2 pieces. The ARM specific update to the arch/configure.defaults file would be one PR. The README could be a second PR. We have never really thought about putting build info in the repository before.

@davegill @martin-g Thanks for your suggestion, and I update and submit a sepated PR on #1557 .

@yip111 yip111 changed the title add README_ARM.md and add ARM stanza Add note for WRF ARM build Sep 16, 2021
@yip111 yip111 requested review from a team as code owners September 16, 2021 07:29
@davegill
Copy link
Contributor

davegill commented Dec 7, 2021

Replaced by #1557 Add new stanza for ARM aarch64/openmpi

@davegill davegill closed this Dec 7, 2021
davegill pushed a commit that referenced this pull request Dec 13, 2021
TYPE:enhancement

KEYWORDS: ARM 

DESCRIPTION OF CHANGES:
Problem:
There are no ARM-only stanzas in arch/configure.defaults. As the suggestion from #1535 , we need a separate PR for ARM specific update.

Solution:
Edit the arch/configure.defaults file and add a stanza for aarch64 and armv7l, using the GNU compiler options. 

The default optimization is -03, up from the usual -02. On two 36-h nested simulations on a raspberry pi, the 
difference is a consistent 3% speed increase across the radiation and non-radiation time steps. This used CONUS, 
so the -03 option seems reasonably robust with the GNU compiler.

LIST OF MODIFIED FILES:
M arch/configure.defaults

RELEASE NOTE: Added a new stanza that is only for ARM processors (right now aarch64 and armv7l) with GNU.
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
TYPE:enhancement

KEYWORDS: ARM 

DESCRIPTION OF CHANGES:
Problem:
There are no ARM-only stanzas in arch/configure.defaults. As the suggestion from wrf-model#1535 , we need a separate PR for ARM specific update.

Solution:
Edit the arch/configure.defaults file and add a stanza for aarch64 and armv7l, using the GNU compiler options. 

The default optimization is -03, up from the usual -02. On two 36-h nested simulations on a raspberry pi, the 
difference is a consistent 3% speed increase across the radiation and non-radiation time steps. This used CONUS, 
so the -03 option seems reasonably robust with the GNU compiler.

LIST OF MODIFIED FILES:
M arch/configure.defaults

RELEASE NOTE: Added a new stanza that is only for ARM processors (right now aarch64 and armv7l) with GNU.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants