I wrote the attached script to sonify tide simulations using NOAA data. It generates 0.1 seconds of audio .wav files for each of the 1274 NOAA tide stations. More info at https://remcycles.net/blog/tides.html.
I noticed a rather large performance regression between J9.6 and J9.7:
Single threaded 9.6: 0m3.980s Single threaded 9.7: 3m42.671s
Seven threads 9.6: 0m1.444s Seven threads 9.7: 0m45.124s
I haven't yet determined the source of the slow down, but will hopefully have time for that this weekend.
A useful tip for the t. conjunction: the verb ]&.> waits for every pyx to be populated. Without it, J9.6 crashes because threads are still running during an exit. J9.7 exits gracefully even if threads aren't finished. Nice!
Thanks,
Remington
To unsubscribe from this group and stop receiving emails from it, send an email to forum+un...@jsoftware.com.
Oops, I sent my first response to Bill only.
My initial suspicion was wrong. I tracked the performance change down to 1&o. :
tm=: 6!:1''
1 o. i.1000*1000
echo tm-~6!:1''
j9.6: 0.0129981
j9.7: 2.32261
Almost 200 times slower.
I don't see anything about changes to o. in the release notes. Haven't checked git.
I don't know if AVX is an issue here, but my CPU does not have AVX2. The installer page says "The initial installation from zips is non-AVX and finishing the installation steps upgrades to AVX2 as appropriate for your hardware."
I'm not sure what installation steps it's referring to, but I'll note that I get the same performance before and after installing all packages:
load 'pacman' 'install' jpkg '*'
Please let me know if there's any other info I can provide to help debug this issue.
Thanks,
Thanks for testing, Bill.
Seems like you get okay performance with J9.7.
I forgot to say I'm running Manjaro Linux, kernel version 6.1.135.
I suspect it's related to file system code, but won't have time to profile until Sunday. The 6!:1 session time trick will be helpful.
Thanks for the simplified parsing code. I didn't know about dltb, etc, yet.
BTW your script doesn't ensure the subfolder named tides is there.
Sorry. I usually orchestrate that kind of thing from a Makefile.-Remington
Thank you, fair enough. I think your explanation here is more clear than the release notes and install page.
I do have a newer desktop collecting dust because I haven't bothered to make it my primary machine yet. Now I have another reason, but in the meantime I'll continue to treat myself to J9.6. :)
-Remington
Thanks Bill. I'm primarily interested in writing signal processing code in J, so trig and exp performance is important to me.
I'll be writing a blog post about this script soon, and plan to include a slide or two with this code at a signal processing conference next month. So upgrading is on the back burner for now.
-Remington
Thank you both. I tried it with j9.7.0-beta8 and with SLEEF disabled the performance is much closer to j9.6. About a 163% increase in runtime for the trig portions of my script, but overall only a 27% increase for my whole script.
Remington