Git Product home page Git Product logo

queso's People

Contributors

briadam avatar dmcdougall avatar erite avatar kemelli avatar koomie avatar nicholasmalaya avatar pbauman avatar rebeccaem avatar rhysu avatar roystgnr avatar sylvainplessis avatar teresaportone avatar tradowsk avatar trevilo avatar vohramanav avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

queso's Issues

GPMSA Scalar Type

We must add the scalar type for the gaussian processes. Here, the type implies the dimension of the space being emulated.

Currently, queso supports vector types, but not scalars.

To finish this ticket, we must:

  • Understand how the matlab code deals with this
  • Design the API (explicitly selecting scalar vs. vector? or automatic detection)
  • How much of the existing vector code can be reused?

Should also consider if we wish to discuss this in the GPMSA meeting tomorrow.

Handle uncaught exceptions

Note I had to reorder MPI_Abort() and queso_error() in Defines.h in #75. This may lead to uncaught exceptions which in turn means that MPI_Abort is not called and processes still go about their business when they shouldn't. We need to check for uncaught exceptions and call MPI_Abort if this is the case.

I think libMesh does this.

GPMSA Sensitivities

Form the Jacobian, e.g. d(Z)/d(theta) where Z is the emulator and theta are the parameters.

As they say in the paper:

With these, one can explore the sensitivities of the simulator model, describe the parameter settings for which the simulator is consistent with the
data, and make predictions for the physical system at settings x for which no experimental data exist.

Calling VectorSpace copy constructor gives linker error

To reproduce:

#include <vector>
#include <string>
#include <iostream>
#include <queso/Environment.h>
#include <queso/GslVector.h>
#include <queso/GslMatrix.h>
#include <queso/VectorSpace.h>

int main(int argc, char **argv) {
  MPI_Init(&argc, &argv);

  QUESO::EnvOptionsValues options;
  options.m_numSubEnvironments = 1;

  QUESO::FullEnvironment *env = new QUESO::FullEnvironment(MPI_COMM_WORLD, "",
      "", &options);

  std::vector<std::string> names(1);
  names[0] = "my_name";
  QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> vec_space(*env,
      "vec_prefix", 1, &names);
  QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> vspace_cpy(vec_space);

  delete env;
  MPI_Finalize();

  return 0;
}

Here's the error:

dyld: lazy symbol binding failed: Symbol not found: __ZN5QUESO9DistArrayISsE4copyERKS1_
  Referenced from: /Users/damon/git/github/queso/build/sep_impl_vectorspace/src/.libs/libqueso-0.47.dylib
  Expected in: flat namespace

dyld: Symbol not found: __ZN5QUESO9DistArrayISsE4copyERKS1_
  Referenced from: /Users/damon/git/github/queso/build/sep_impl_vectorspace/src/.libs/libqueso-0.47.dylib
  Expected in: flat namespace

Looks like our friend, the DistArray copy constructor, is back.

Ernesto updated more stuff in svn - check/merge that

I saw on Redmine that Ernesto has been updating QUESO code. Paul noticed that he is adding options to disable parameters, but we need to keep an eye on it:

Date Author Comment

41865 09/30/2013 08:42 pm Ernesto Prudencio changes for disabling parameters is user wants to

41858 09/30/2013 01:49 am Ernesto Prudencio For GPMSA tests: adding capability to disable parameters

Separate implementation from files in src/stats/inc

$ grep -l -r template src/stats/inc

Gives this list:

  • ./FiniteDistribution.h
  • ./InfoTheory.h (see #106)
  • ./JointPdf.h (see #107)
  • ./MarkovChainPositionData.h (see #108)
  • ./MatrixCovarianceFunction.h (see #109)
  • ./MetropolisHastingsSG1.h (see #110)
  • ./MetropolisHastingsSG2.h (see #110)
  • ./MLSampling1.h (see #111)
  • ./MLSampling2.h (see #111)
  • ./MLSampling3.h (see #111)
  • ./ModelValidation.h (see #112)
  • ./MonteCarloSG.h (see #113)
  • ./ScalarCdf.h (see #114)
  • ./ScalarCovarianceFunction.h (see #115)
  • ./ScalarGaussianRandomField.h (see #116)
  • ./StatisticalForwardProblem.h (see #117)
  • ./StatisticalInverseProblem.h (see #118)
  • ./TKGroup.h (see #121)
  • ./ValidationCycle.h (see #119)
  • ./VectorCdf.h (see #122)
  • ./VectorGaussianRandomField.h (see #120)
  • ./VectorMdf.h (see #123)
  • ./VectorRealizer.h (see #124)
  • ./VectorRV.h

Updated user' s manual for QUESO v0.47.1

The release v0.47.0 went with a few out-of-date information and with an example that had a bug.

This new manual comes with 2 new, described examples (simpleStatisticalInveseProblem and simpleStatisticalForwardProblem), and includes the description of another one (validationCycle).

It should be used as the base ref for future user' s manuals.

Replace exit(1) calls with queso_exit

Queso currently deals with faults by calling exit(1). This is not robust with respect to parallel computation, because any exit calls will tear down the entire routine.

Instead, we should move to exception handling that permits catching failures and dealing with them in an appropriate manner.

I propose we start this process by replacing all exit calls with queso_exit. To start this can invoke exit(1), and later this method can be overloaded. I'm guessing a quick alternative will be grvy_exit(), but long term I believe we should investigate fault tolerant process handling.

Separate implementation from files in src/basic/inc

grep -rl 'template' src/basic/inc
  • ./ArrayOfSequences.h (#51)
  • ./InstantiateIntersection.h (see #62)
  • ./ScalarFunction.h (see #66)
  • ./ScalarFunctionSynchronizer.h (see #64)
  • ./ScalarSequence.h (see #82)
  • ./SequenceOfVectors.h (see #79)
  • ./SequenceStatisticalOptions.h (NOT TEMPLATED)
  • ./VectorFunction.h (see #80)
  • ./VectorFunctionSynchronizer.h (see #83)
  • ./VectorSequence.h (see #84)
  • ./VectorSet.h (see #58)
  • ./VectorSpace.h (see #56)
  • ./VectorSubset.h (see #59)

Bug in SequenceOfVectors::erasePositions

I think this code should run without error:

#include <vector>
#include <string>
#include <iostream>
#include <set>
#include <queso/Environment.h>
#include <queso/GslVector.h>
#include <queso/GslMatrix.h>
#include <queso/VectorSpace.h>
#include <queso/SequenceOfVectors.h>

int main(int argc, char **argv) {
  MPI_Init(&argc, &argv);

  QUESO::EnvOptionsValues options;
  options.m_numSubEnvironments = 1;
  options.m_subDisplayAllowAll = 0;
  options.m_subDisplayAllowedSet.insert(0);

  QUESO::FullEnvironment *env = new QUESO::FullEnvironment(MPI_COMM_WORLD, "",
            "", &options);

  // Create a vector space
  std::vector<std::string> names(1);
  names[0] = "my_name";
  QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> vec_space(*env,
      "vec_prefix", 1, &names);

  // Create some vectors to put in the VectorSequence
  QUESO::GslVector v1(vec_space.zeroVector());
  QUESO::GslVector v2(vec_space.zeroVector());
  v1[0] = 0.0;
  v2[0] = 1.0;

  // Create a sequence of vectors
  QUESO::SequenceOfVectors<QUESO::GslVector, QUESO::GslMatrix> vec_seq(vec_space, 2, "vec_seq");

  vec_seq.setPositionValues(0, v1);
  vec_seq.setPositionValues(1, v2);

  // Now erase just one element (the 0th element)
  vec_seq.erasePositions(0, 1);

  MPI_Finalize();

  return 0;
}

Deprecate MACROS in Define.h

The Macros in src/core/inc/Defines.h:

  • UQ_RC_MACRO
  • UQ_TEST_MACRO
  • UQ_FATAL_RC_MACRO
  • UQ_FATAL_TEST_MACRO

Are all old and do not appropriately understand MPI. Let's replace them with queso_exit (and associated) calls, which can provide catchable error handling as well as better information on what caused the failures.

Decide what to do with older SVN propset keywords

git doesn't think too kindly of keyword substitution. But, I do miss a timestamp header at times. This can be pulled off with some additional attribute customization, but it may not be worth it or of sufficient interest. Evaluate and either:

  • update to use external attribute markup or
  • toss old SVN keywords from src

Update README

  • Port to markdown so it's prettified on the repository landing page
  • Add information on how to contribute
  • Add information regarding the licence (just a reference to the LICENSE) file will suffice

Separate implementation from files in src/gp/inc

$ grep -rl 'template' src/gp/inc
  • ./ExperimentModel.h (see #130)
  • ./ExperimentStorage.h (see #131)
  • ./GcmExperimentInfo.h (see #132)
  • ./GcmJointInfo.h (see #133)
  • ./GcmJointTildeInfo.h (see #134)
  • ./GcmSimulationInfo.h (see #135)
  • ./GcmSimulationTildeInfo.h (see #136)
  • ./GcmTotalInfo.h (see #137)
  • ./GcmZInfo.h (see #138)
  • ./GcmZTildeInfo.h (see #139)
  • ./GpmsaComputerModel.h (see #142)
  • ./GpmsaComputerModel2.h (see #142)
  • ./GpmsaComputerModel3.h (see #142)
  • ./GpmsaComputerModel4.h (see #142)
  • ./GpmsaComputerModel5.h (see #142)
  • ./SimulationModel.h (see #140)
  • ./SimulationStorage.h (see #141)

Fix broken tests

Some of the tests are silently failing out-of-source. Fix imminent.

GLPK required for tests

make check output after setting --without-glpk to configure:

libtool: link: mpic++ -g -O2 -Wall -o .libs/BimodalExample_gsl example_main.o example_compute.o example_likelihood.o -Wl,-rpath -Wl,/opt/local/lib -Wl,-bind_at_load  -L../../src/ /Users/damon/git/github/queso/src/.libs/libqueso.dylib -L/opt/local/lib /opt/local/lib/libgsl.dylib /opt/local/lib/libgslcblas.dylib -lboost_program_options-mt /opt/local/lib/libhdf5.dylib
Undefined symbols for architecture x86_64:
  "_glp_add_cols", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_add_rows", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_create_prob", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_delete_prob", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_get_num_bin", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_get_num_cols", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_get_num_int", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_get_num_nz", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_get_num_rows", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_init_iocp", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_intopt", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_load_matrix", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_mip_col_val", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_mip_obj_val", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_mip_row_val", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_mip_status", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_set_col_bnds", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_set_col_kind", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_set_col_name", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_set_col_stat", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_set_obj_coef", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_set_obj_dir", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_set_prob_name", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_set_row_bnds", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_set_row_name", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
  "_glp_set_row_stat", referenced from:
      uqMLSamplingClass<uqGslVectorClass, uqGslMatrixClass>::solveBIP_proc0(std::vector<uqExchangeInfoStruct, std::allocator<uqExchangeInfoStruct> >&) in example_compute.o
ld: symbol(s) not found for architecture x86_64

GLPK is optional, so we should put some conditional foo around these so they don't get snarfed by accident.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.