-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test running SCINGE inside MATLAB Docker container #16
Conversation
Do not add the large SCINGE_Example compiled file. Compiled with: mcc -m -R -singleCompThread -R -nodisplay -R -nojvm -a ./glmnet_matlab/ SCINGE_Example.m
https://hub.docker.com/r/amarburg/matlab-runtime is a similar container that has MATLAB R2018a (9.4), which matches the version used to compile SCINGE. It also attempts to fix libstdc++ problems, which were encountered in 678337e. |
Compiled with: mcc -m -R -singleCompThread -R -nodisplay -R -nojvm -a ./glmnet_matlab/ -a ./code/ SCINGE_Example.m
The compiled SCINGE_Example now runs successfully in the MATLAB Docker container. Before merging, we'll need to confirm that it produces the correct output. Currently, it only runs GLG_instance one time. @atuldeshpande is it safe to remove We can discuss how to create a SCINGE interface that supports command line arguments or a config file. We'll also need to decide where to permanently host the compiled SCINGE code. Currently it is on a temporary biostat.wisc.edu directory for testing. |
Compiled with: mcc -m -R -singleCompThread -R -nodisplay -R -nojvm -a ./glmnet_matlab/ -a ./code/ SCINGE_Example.m
e17ac05 now runs GLG the correct number of times and produces the expected output files
|
I ran In order to run the tests in Python, Miniconda is now installed inside the Docker container approximatley following the Miniconda Dockerfile. Currently, the intermediate Running the tests in Python and bash scripts is unusual, but if we write them in MATLAB we would need to compile them to run them in Travis CI. These tests scripts can eventually be used to
|
tests/compare_adj_matrices.py
Outdated
print('Spare matrices in {} and {} are equal'.format(args.mat_file[0], | ||
args.mat_file[1])) | ||
else: | ||
print('Spare matrices in {} and {} are not equal'.format(args.mat_file[0], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we please add maximum absolute value of difference obtained from np.allclose?
The sparse adjacency matrix test now outputs the maximum absolute value of difference if the values are not close. The test cases now run correctly and run inside a conda environment, which will be important for our local testing. Before the final code review, I plan to further test my test code by modifying some of the sparse matrices and making sure the tests fail. |
AdjMatrix_data1_X_SCODE_datapmat_ID_541_replicate_1.mat: modify 'params' but not 'Adj_Matrix' AdjMatrix_data1_X_SCODE_datapmat_ID_541_replicate_2.mat: modify two values of 'Adj_Matrix' AdjMatrix_data1_X_SCODE_datapmat_ID_542_replicate_1.mat: delete a value from 'Adj_Matrix' AdjMatrix_data1_X_SCODE_datapmat_ID_542_replicate_2.mat: add a value to 'Adj_Matrix'
@atuldeshpande this is ready for review. I will merge after you approve. I tested that the test cases work, failing Travis CI they should:
I've also done some local testing to confirm that the spare adjacency matrix test only fails when the absolute difference is large enough. It passes for very small differences. |
Test running SCINGE inside MATLAB Docker container
Closes #14
Use https://hub.docker.com/r/fbenz/docker-java-matlab as the base Docker container or an example of how to create a container with the MATLAB runtime.