+ All Categories
Home > Documents > Scientific Programming MAIN INPUTINITCOMPUTEOUTPUT SOLVER DERIV FUNC2 TABUL FUNC1 STATIC...

Scientific Programming MAIN INPUTINITCOMPUTEOUTPUT SOLVER DERIV FUNC2 TABUL FUNC1 STATIC...

Date post: 19-Dec-2015
Category:
View: 227 times
Download: 2 times
Share this document with a friend
Popular Tags:
14
LECTURE 5: STYLE AND STRUCTURE Scientific Programming MAIN INPUT INIT COMPUTE OUTPUT SOLVE R DERIV FUNC2 TABU L FUNC 1 STAT IC BLAS LAPACK MEMLIB
Transcript

LECTURE 5: STYLE AND STRUCTURE

Scientific Programming

MAIN

INPUT INIT COMPUTE

OUTPUT

SOLVER

DERIV FUNC2

TABUL

FUNC1

STATIC

BLAS

LAPACK

MEMLIB

HOW TO DECIDE ON THE STRUCTURE?

How to split the code in modules and subroutines?

How to select the interface? Many runs may require automatic

documentation Long runs may need

interrupt/continuation possibility How the results are going to be

presented?

WHAT COULD BE THE GOALS OF A SERIOUS CODE? (EXAMPLES)

Artificial Intelligence: object detection/classification

Data modelling

Dynamic models

AI: OBJECT DETECTION/CLASSIFICATION

Do you see structures on this image?

AI: OBJECT DETECTION/CLASSIFICATION

… but your computer code has to deal with this:

AI: ONE POSSIBLE ALGORITHM Defining pixels that contain signal

Identifying clusters of pixels

Fitting some analytical shape function to the clusters → polynomial coefficients for each cluster

Merging clusters → re-doing polynomials

,x y c:::::::::::::::::::::::::: ::

DATA MODELLING You have measurements and physical model

controlled by some parameters. You want to find the set of parameters that realizes

the best fit to your data For example, fitting stellar spectrum

Equations:

Parameters: chemical composition Z Given chemical composition we solve for intensity Then we compare with the observations and adjust chemical

composition

2

( )

min

dIj Z I

dx

I O

::::::::::::::

DATA MODELLINGOutstanding issues: Do we search for Z one at a time? Can we associate Z and wavelength intervals? Is there a clever way to wind optimal Z?

E.g. Marquardt-Levenberg algorithm, but this requires 2nd derivatives over Z.

Subroutines:input – reads in observations and line datainit – computesprocess – does the optimization, needs evaluation of intensities and its 1st and 2nd derivatives over Zoutput – reports the result

DATA MODELLINGHere is how the result of such

optimization may look like:

EVOLUTIONARY MODELS

3D hydro-dynamic simulations with radiative energy transport

Hydro

Radiation

EVOLUTIONARY MODELS

Evolutionary modelscannot be comparedwith observationsdirectly.

Therefore, post processingis crucial (analysis ofvarious spectral andintegral properties).

CONCLUSIONS

1. Many AI-type algorithms are hard to make robust. In same cases it is simply not possible. This requires a comfortable user interface and, perhaps, built-in graphics. Select the programming language wisely.

2. Data models and dynamic models: selected algorithm dictates code structure.

3. Think about the parameters that you are going to change. Make sure you do not need to modify the code to vary those parameters (e.g. grid size).

4. Complex numerical algorithms often require fine tuning and probing large space of parameters. This requires lots of numerical experiments. Incorporate in the code the ability to propagate to the output the parameters of each experiment (self-documentation).

CONCLUSIONS

5. Evolutionary codes have to run for long time to “forget” the initial conditions. In fact, it is often better to start from the results of a run with different set of parameters and than start from scratch. Make sure all the necessary results are saved to file(s) reasonably often so you can re-start you calculations.

6. Think in advanced what you may need to get out from your code and make sure this information is saved

7. Think about “easy to grasp” ways of presenting your results.

NEXT LECTURE: OPTIMIZATION

The lecture is on October 9th2nd session of the home work

presentations will be next week, perhaps on October 8th at 10:15am


Recommended