MODEST meeting 2009-11-04
From Micasim
| Project | SL |
|---|---|
| Project Lead | Rob Knop |
| Project Homepage | Virtual World Workshops |
Transcript
[6:10] Linguini Mexicola: Hi there
[6:10] Ico Telling: hi
[6:10] Peter28 Shostakovich: h all
[6:11] Linguini Mexicola: I am not sure what the plan was for today
[6:12] Linguini Mexicola: there is a good crowd; Rob suggested I go on about the stuff
[6:12] MICA seminar seat whispers: Hi Remy Vespucciano! Touch me for Menu. Say /1a to Adjust.
[6:12] Linguini Mexicola: I talked about (or didn't manage to), but I guess we can discuss
[6:12] Linguini Mexicola: other stuff also
[6:13] Linguini Mexicola: Arjen, do we have anything new on AMUSE?
[6:14] Linguini Mexicola shouts: Arjen??
[6:14] Remy Vespucciano: sorry, was away for a moment
[6:14] Remy Vespucciano: no I don't think so
[6:17] Linguini Mexicola: We have hired a fourth team member, he should be starting in december
[6:17] Ico Telling: who is he?
[6:18] MICA seminar seat whispers: Hi Peter28 Shostakovich! Touch me for Menu. Say /1a to Adjust.
[6:18] Remy Vespucciano: The AMUSE team will have
[6:18] Remy Vespucciano: a software engineer, two programmers and a post-doc
[6:18] Remy Vespucciano: in december the 2nd programmer will start
[6:18] Linguini Mexicola: Nathan de Vries
[6:20] MICA seminar seat whispers: Hi Storm Nordwind! Touch me for Menu. Say /1a to Adjust.
[6:20] Linguini Mexicola: Are there any people around who have done star formation simulations
[6:20] Linguini Mexicola: ?
[6:21] Linguini Mexicola: (either GMC or galactic scale)
[6:27] Linguini Mexicola: Well, not a lot of reaction: let me clarify,
[6:28] Linguini Mexicola: The thing is that we are working on the hydro interface
[6:28] Linguini Mexicola: and one of the things that are to be included are
[6:28] Linguini Mexicola: stopping conditions
[6:29] ffd2 Cyberstar is Offline
[6:29] Linguini Mexicola: i.e returns of a module when physics of the simulation goes out of bounds
[6:29] Linguini Mexicola: , for gravity this would be stellar collision
[6:30] Linguini Mexicola: for hydro this could be star formation or violation of stability criteria
[6:30] ffd2 Cyberstar is Online
[6:31] Peter28 Shostakovich: has there been talk about how to make ever- changing interfaces robust?
[6:31] Linguini Mexicola: the question is: how much flexibility should this have?
[6:31] Peter28 Shostakovich: in python i guess one way is to give parameters defaults
[6:31] MICA seminar seat whispers: Hi ffd2 Cyberstar! Touch me for Menu. Say /1a to Adjust.
[6:31] Peter28 Shostakovich: but one could also think about versioning
[6:32] Linguini Mexicola: first thing (default parameters) we a are doing for sure
[6:33] Remy Vespucciano: Also python is very dynamics
[6:33] Remy Vespucciano: so qe use this strongly
[6:33] Remy Vespucciano: out defined methods are smallere
[6:33] Remy Vespucciano: and methods can be added in enxt versions\
[6:34] Remy Vespucciano: next
[6:34] Remy Vespucciano: for example
[6:34] Remy Vespucciano: we have
[6:34] Remy Vespucciano: get_acceleration
[6:34] Remy Vespucciano: which is robust (does not chanmge)
[6:34] MICA seminar seat whispers: Hi Jeroen Artful! Touch me for Menu. Say /1a to Adjust.
[6:34] Remy Vespucciano: and if you want the jerk
[6:34] Remy Vespucciano: we add get_jerk
[6:35] Remy Vespucciano: which does not have to be implemented on every module
[6:36] Remy Vespucciano: Plus we add a layer on top of the basic interface
[6:36] Remy Vespucciano: that maps functions to properties of objects
[6:37] Remy Vespucciano: this also reduces the amount of work
[6:37] Remy Vespucciano: needed when an interface changes
[6:37] Remy Vespucciano: So, not really versioning
[6:37] Remy Vespucciano: but more querying
[6:38] Remy Vespucciano: "does this interface have the function I need?"
[6:38] Remy Vespucciano: which is very natural to do in python
[6:39] Remy Vespucciano: Does that answer your question somewhat Peter?
[6:43] Peter28 Shostakovich: sorry,r an out for real life coffee
[6:43] Remy Vespucciano: k\
[6:44] Remy Vespucciano: okee
[6:44] Peter28 Shostakovich: but yes, sure, had just wondered if we needed more than the usual python tricks
[6:46] Remy Vespucciano: I don't think so...
[6:46] Remy Vespucciano: But we'll monitor how the interface change during development
[6:46] Remy Vespucciano: Add functions is no problem
[6:47] Remy Vespucciano: Changing the parameters of functions is
[6:47] Remy Vespucciano: This is more important
[6:47] Remy Vespucciano: for stellar evolution codes
[6:47] Remy Vespucciano: that don't have state
[6:48] Remy Vespucciano: they need a lot of parameters to evolve a star
[6:48] Remy Vespucciano: to the next timestep
[6:48] Remy Vespucciano: so we let each stellar evolution code like this
[6:48] Remy Vespucciano: have his specific evolve
[6:48] Remy Vespucciano: with specific parameters
[6:49] Remy Vespucciano: and build on top of that
[6:49] Remy Vespucciano: much like MUSE, but we try
[6:49] Remy Vespucciano: to get it a little bit more
[6:49] Remy Vespucciano: generic
[6:49] Remy Vespucciano: so it works for other domains
[6:50] Storm Nordwind knows nothing of the sim background here, but can't you just pass fixed pointers to parameter blocks of variable sizes? Or does your language architecture prevent that as not sufficiently message-oriented?
[6:51] Remy Vespucciano: We want to put all the flexibility in the python part
[6:51] Remy Vespucciano: which is mucht easier to implement
[6:51] Remy Vespucciano: and robutst
[6:52] Remy Vespucciano: and keep the original codes (written in fortran often)
[6:52] Remy Vespucciano: mostly unchanged
[6:52] Remy Vespucciano: and these work best with defined functions having specific
[6:52] Remy Vespucciano: parameters
[6:53] Remy Vespucciano: (each parameter can be an array of length N btw)
[6:53] Lignum Gaines: for a stellar code N can easily be ~10*1000
[6:53] Lignum Gaines: or 4
[6:53] Lignum Gaines: depeding on what you're using....
[6:54] Remy Vespucciano: Yes, I have a test with about
[6:54] Remy Vespucciano: 2 million
[6:54] Remy Vespucciano: vectors (x,y,z)
[6:54] Remy Vespucciano: send in one call
[6:59] Remy Vespucciano: I was looking for mny speed numbers...
[6:59] Remy Vespucciano: Currently I see we can send about 8 times a minute
[7:00] Remy Vespucciano: 2 million vectors (of double values)
[7:00] Remy Vespucciano: I'm looking at speeding this up a bit
[7:00] Lignum Gaines: how? doesn't the python give a fundamental limit....?
[7:00] Remy Vespucciano: So, If you want to initialize a NBODY code
[7:00] Remy Vespucciano: this is more htan fast enough
[7:00] Remy Vespucciano: no not python
[7:00] Lignum Gaines: ah
[7:01] Remy Vespucciano: But if you want to send a lot of data between different codes
[7:01] Remy Vespucciano: it may not yet be fast enough
[7:02] Remy Vespucciano: We use numpy for most of the heavy lifting
[7:02] Remy Vespucciano: and it has all kinds of optimazations
[7:11] Remy Vespucciano: Stephen, which nbody code do you use normallyu?
[7:11] Peter28 Shostakovich: when you said 'send lot of data'
[7:11] Peter28 Shostakovich: does numpy add a lot of overhead?
[7:12] Lignum Gaines: me?
[7:12] Remy Vespucciano: Numpy reduces the overhead
[7:12] Remy Vespucciano: lignum, yes!
[7:12] Peter28 Shostakovich: i gues what i mean is rth following
[7:12] Peter28 Shostakovich: suppose get() and put() are python interfaces with numpyu arays
[7:12] Peter28 Shostakovich: and you do:
[7:13] Lignum Gaines: Sorry, I'm a binary evoluton guy. N-body is for other people :-) One of my stars has quite enough data....
[7:13] Peter28 Shostakovich: x = get() ; put(x)
[7:13] Peter28 Shostakovich: and compare that do a big array in pure C/C+/Fortran
[7:13] Lignum Gaines: MAybe I used the word "stellar" in a misinterpretable way....
[7:13] Peter28 Shostakovich: that kind of overhead
[7:13] Peter28 Shostakovich: where X are big big arrays
[7:13] Remy Vespucciano: ok
[7:14] Remy Vespucciano: if you loop over the array in python it is way slower
[7:14] Remy Vespucciano: but if you keep mosts of the code away from python
[7:14] Peter28 Shostakovich: usually though you would just have it as a contained
[7:14] Remy Vespucciano: it is almost same speed
[7:14] Remy Vespucciano: yes that is right
[7:14] Peter28 Shostakovich: and plotting would be plot(x,....)
[7:14] Peter28 Shostakovich: etc.
[7:14] Remy Vespucciano: yes
[7:15] Peter28 Shostakovich: but it's useful to have x in atomic form with access functions
[7:15] Remy Vespucciano: yes, that's right
[7:16] Remy Vespucciano: In AMUSE you can have a dunction set_state(index, mass)
[7:16] Remy Vespucciano: and it can take 1 indeax and 1 mass
[7:16] Remy Vespucciano: or n indices and n masses
[7:17] Remy Vespucciano: sorry stephen, do you have a stellar evolution code
[7:17] Remy Vespucciano: you would like to add to AMUSE?
[7:18] Lignum Gaines: I use a version of the code Evert Glebbeek does (the Eggleton code).
[7:18] Lignum Gaines: I'm pretty sure he's doing agood job already.
[7:18] Lignum Gaines: A very good job!
[7:18] Remy Vespucciano: Ok!, yes evtwin is and will be included in AMUSE
[7:18] Lignum Gaines: I wouldn't mind seeing the proposed interface though, just in case....
[7:19] Remy Vespucciano: Yes, I can send you a version
[7:19] Lignum Gaines: Thank you.
[7:19] Remy Vespucciano: just send me and IM with you e-mail address!
[7:21] Remy Vespucciano: I would love to discuss some more
[7:21] Remy Vespucciano: but I have to goo
[7:21] Remy Vespucciano: Please send me an IM if you want more info etc...
[7:22] Lignum Gaines: Done. And thanks again.
[7:22] Lignum Gaines: Bye!
[7:25] Linguini Mexicola: cheers
[7:25] Linguini Mexicola is Offline
[7:27] Ico Telling: Arjen can you save the chat log and send it to Rob?
[7:28] Ico Telling: Bye all
[7:28] ffd2 Cyberstar: Bye
[7:28] Remy Vespucciano: Yes I will
[7:29] Remy Vespucciano: Bye bye

