LXCat-project / LXCat

An open-access website for collecting, displaying, and downloading electron and ion scattering data for modeling low temperature plasmas.
6 stars 1 forks source link

[NOTES] Running BOLSIG+ and other tools #34

Open daanboer opened 1 year ago

daanboer commented 1 year ago

In GitLab by @LXCat on Sep 29, 2022, 13:01

Background

Possible architectures

Constraints

Application uses BLAS libraries like dgesv.

Action points

daanboer commented 1 year ago

In GitLab by @LXCat on Sep 29, 2022, 17:14

@wgraef: summary from our discussion today with Gijs, any comments would be helpful.

@sverhoeven: I hope I didn't miss anything.

By Suvayu Ali on 2022-09-29T15:14:23 (imported from GitLab)

By LXCat Project on 2022-09-29T15:14:23 (imported from GitLab)

daanboer commented 1 year ago

In GitLab by @LXCat on Sep 29, 2022, 21:06

This looks like a good summary to me.

Regarding calling fortran code on as a library, while there are libraries to do everything in fortran, a wrapper is indeed a much better option. The third party tools required are much more mature.

The named pipe option I have never considered. It's definitely interesting. Any information on that would be very welcome.

In the case of a wrapped library and named pipe, some modifications will be required on the fortran side. For the named it would be enough if data from a stream can be processed right?

For the webassembly case, could that work in essence the same as the standalone program now, with the data read and written being located in some kind of virtual filesystem?

By LXCat Project on 2022-09-29T19:06:53 (imported from GitLab)

By LXCat Project on 2022-09-29T19:06:53 (imported from GitLab)

daanboer commented 1 year ago

In GitLab by @LXCat on Sep 30, 2022, 24:23

For the named pipe option, it depends a bit on how the configuration/input file is used currently. It's not necessarily simply reading/writing to a stream. For example, maybe different sections of the file is read before different stages of the simulation, or maybe it is read multiple times, then refactoring could be very difficult.

For the webassembly case, @sverhoeven would have to correct me, it would be like calling a function from a library/module but on the client side (in the browser). Basically the same code base is being compiled to both a native binary (for standalone use) and a webassembly module (for use on LXCat).

By Suvayu Ali on 2022-09-29T22:24:23 (imported from GitLab)

By LXCat Project on 2022-09-29T22:24:23 (imported from GitLab)

daanboer commented 1 year ago

In GitLab by @LXCat on Sep 30, 2022, 11:31

You are correct. The JavaScript in the browser needs to call a function inside the Web Assembly module (WASM). So the source (C/C++ wrapper around Fortran code) of the WASM also needs to expose/export a function.

By Stefan Verhoeven on 2022-09-30T10:09:29 (imported from GitLab)

By LXCat Project on 2022-10-11T21:04:27 (imported from GitLab)