Skip to content
Snippets Groups Projects
Commit 448bea8f authored by David Hendriks's avatar David Hendriks
Browse files

Adding tests to automate everything

parent e2769b53
No related branches found
No related tags found
No related merge requests found
Showing
with 5279 additions and 275 deletions
File moved
File moved
import subprocess
import os
# Script containing extra tests
# TODO: store the version somewhere
def test_binary_c_installed():
binary_c_dir = os.getenv("BINARY_C", None)
assert binary_c_dir is not None, "Error: the BINARY_C environment variable is not set."
assert os.path.isfile(os.path.join(binary_c_dir, 'binary_c')), "binary_c doesn't exist!"
def test_binary_c_version():
required_binary_c_versions = ['2.1.7']
binary_c_dir = os.getenv("BINARY_C", None)
binary_c_config = os.path.join(binary_c_dir, "binary_c-config")
installed_binary_c_version = (
subprocess.run(
[binary_c_config, "version"], stdout=subprocess.PIPE, check=True
)
.stdout.decode("utf-8")
.split()
)[0]
message = """
The binary_c version that is installed ({}) does not match the binary_c versions ({})
that this release of the binary_c python module requires.
""".format(installed_binary_c_version, required_binary_c_versions)
assert installed_binary_c_version in required_binary_c_versions, message
###
if __name__ == "__main__":
test_binary_c_version()
test_binary_c_installed()
\ No newline at end of file
from binarycpython.utils.functions import get_help_super, get_help_all, get_help from binarycpython.utils.functions import (
get_help_super,
get_help_all,
get_help,
)
############################# #############################
# File containing some tests to function. These are not unit tests where output is compared. # Script that contains unit tests for functions from the binarycpython.utils.functions file
def test_get_help_super():
"""
Function to test the get_help_super function
"""
## Help functionality get_help_super_output = get_help_super()
print(get_help_super(print_help=True, return_dict=False, fail_silently=False)) get_help_super_keys = get_help_super_output.keys()
print(get_help_all(print_help=True))
print(get_help("M_1")) assert 'stars' in get_help_super_keys, "missing section"
# assert 'binary' in get_help_super_keys, "missing section"
assert 'nucsyn' in get_help_super_keys, "missing section"
assert 'output' in get_help_super_keys, "missing section"
assert 'i/o' in get_help_super_keys, "missing section"
assert 'algorithms' in get_help_super_keys, "missing section"
assert 'misc' in get_help_super_keys, "missing section"
print(get_help_super_output.keys())
def test_get_help_all():
"""
Function to test the get_help_all function
"""
get_help_all_output = get_help_all(print_help=False)
get_help_all_keys = get_help_all_output.keys()
assert 'stars' in get_help_all_keys, "missing section"
assert 'binary' in get_help_all_keys, "missing section"
assert 'nucsyn' in get_help_all_keys, "missing section"
assert 'output' in get_help_all_keys, "missing section"
assert 'i/o' in get_help_all_keys, "missing section"
assert 'algorithms' in get_help_all_keys, "missing section"
assert 'misc' in get_help_all_keys, "missing section"
def test_get_help():
"""
Function to test the get_help function
"""
assert get_help("M_1", print_help=False)['parameter_name'] == 'M_1', "get_help('M_1') should return the correct parameter name"
if __name__ == "__main__":
test_get_help()
test_get_help_all()
test_get_help_super()
# Main file for the tests. This file imports all the combined_test functions from all files.
\ No newline at end of file
...@@ -4,218 +4,289 @@ import time ...@@ -4,218 +4,289 @@ import time
import pickle import pickle
import sys import sys
import matplotlib.pyplot as plt # import matplotlib.pyplot as plt
from binarycpython.utils.grid import Population from binarycpython.utils.grid import Population
from binarycpython.utils.functions import get_help_all, get_help from binarycpython.utils.functions import (
get_help_all,
## Script is intended for some testing of grid functionality. Its a bit random, not really structured tbh get_help,
test_pop = Population() output_lines,
## Setting values
# print(test_pop.bse_options['M_1'])
# print(test_pop.bse_options['M_2'])
# test_pop.set(M_1=10, M_2=500)
# print(test_pop.bse_options['M_1'])
# print(test_pop.bse_options['M_2'])
test_pop.set(
M_1=10,
separation=0,
orbital_period=4580,
max_evolution_time=15000,
eccentricity=0.02,
) )
# print(test_pop.bse_options)
# print(len(test_pop.return_binary_c_defaults())) def test_setup_population():
# print('\n\n') """
# print(len(test_pop.cleanup_defaults())) Unit test for setting up the population object
"""
line = test_pop.return_argline(test_pop.cleanup_defaults()) test_pop = Population()
## Testing single evolution assert isinstance(test_pop, Population), "Population object not created properly"
# test_pop.evolve_single()
# test_pop.test_evolve_single()
## Setting custom value def test_set_value_population():
# test_pop.set(data_dir=os.path.join(os.environ['BINARYC_DATA_ROOT'], 'development_example')) """
# print(test_pop.custom_options['data_dir']) Unit test for setting values in the population object
"""
## printing all options test_pop = Population()
# print(json.dumps(test_pop.return_population_settings(), indent=4))
test_pop.set(
verbosity=1,
)
test_pop.set(
M_1=10,
data_dir='/tmp/binary-c/output',
ensemble_filter_SUPERNOVAE=1,
)
## return arglines: assert test_pop.bse_options['M_1'] == 10, 'BSE options not correctly set'
# test_pop.set(M_1=10, M_2=500) assert test_pop.grid_options['verbosity'] == 1, 'Grid options not correctly set'
# print(test_pop.return_argline()) assert test_pop.custom_options['data_dir'] == '/tmp/binary-c/output', 'Custom options not correctly set'
# test_pop.return_argline() assert test_pop.bse_options['ensemble_filter_SUPERNOVAE'] == 1, "Parameters are not getting caught correctly (The wildcards of parameters with %d in their name)"
## return version info def test_set_argline_output_population():
# version_info = test_pop.return_binary_c_version_info() """
# print(version_info) Unit test for setting values in the population object
"""
test_pop = Population()
## Use custom arg file test_pop.set(
# test_pop.evolve_population(custom_arg_file='/home/david/projects/binary_c_root/binary_c-python/tests/population/custom_arg_file.txt') M_1=10,
M_2 = 14.0, # Msun
separation = 0, # 0 = ignored, use period
orbital_period = 4530.0, # days
eccentricity = 0.0,
metallicity = 0.02,
max_evolution_time = 15000,
verbosity=1,
)
## Custom logging: argline = test_pop.return_argline()
# test_pop.set(C_auto_logging={'MY_HEADER_LINE': ['star[0].mass', 'star[1].mass', 'model.probability']}) assert argline == "binary_c M_1 10 M_2 14.0 eccentricity 0.0 max_evolution_time 15000 metallicity 0.02 orbital_period 4530.0 separation 0", "Argline not constructed correctly. Check if values are set properly."
# test_pop.set(C_logging_code='Printf("MY_STELLAR_DATA time=%g mass=%g radius=%g\\n", stardata->model.time, stardata->star[0].mass, stardata->star[0].radius);')
# test_pop.evolve_population()
def test_version_info_dict_population():
"""
Unit test for setting values in the population object
## Custom logging with bigger print statement: TODO: Add status to output of the version_info, with -1 if there are unmatched items
# test_pop.set(M_1=100, M_2=1, metallicity=0.0002, orbital_period=500000000) """
# test_pop.set(
# C_logging_code="""
# if(stardata->star[0].stellar_type>=MS)
# {
# if (stardata->model.time < stardata->model.max_evolution_time)
# {
# Printf("DAVID_SCO %30.12e %g %g %g %g %d %d\\n",
# //
# stardata->model.time, // 1
# stardata->star[0].mass, //2
# stardata->previous_stardata->star[0].mass, //3
# stardata->star[0].radius, //4
# stardata->previous_stardata->star[0].radius, //5
# stardata->star[0].stellar_type, //6
# stardata->previous_stardata->star[0].stellar_type //7
# );
# };
# /* Kill the simulation to save time */
# // stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;
# };
# """
# )
# test_pop.evolve_population()
test_pop = Population()
## Help all # return version info
# print(get_help_all(return_dict=True)) version_info = test_pop.return_binary_c_version_info(parsed=True)
version_info_keys = version_info.keys()
# get_help_all() assert "L_SUN" in version_info_keys, "Missing item in version info"
# print(get_help('M_1', print_help=False, return_dict=True)) assert "ADAPTIVE_RLOF_LOG" in version_info_keys, "Missing item in version info"
assert "GSL_VERSION" in version_info_keys, "Missing item in version info"
assert "git_revision" in version_info_keys, "Missing item in version info"
def test_settings_output_population():
"""
Unit test for outputting the settings of the population dict object
"""
test_pop = Population()
# return version info
population_settings = test_pop.return_population_settings()
population_settings_keys = population_settings.keys()
## return all info: assert 'bse_options' in population_settings_keys, "Missing information in the population_settings dict"
# print(json.dumps(test_pop.return_all_info(), indent=4)) assert 'grid_options' in population_settings_keys, "Missing information in the population_settings dict"
# test_pop.export_all_info(outfile=os.path.join(os.getcwd(), "test_output.txt")) assert 'custom_options' in population_settings_keys, "Missing information in the population_settings dict"
################# Parse function def test_all_info_population():
## Testing some stuff out with giving a parse_function. """
# test_pop.set( Unit test for outputting all information of the population object
# C_logging_code=""" """
# if(stardata->star[0].stellar_type>=NS)
# {
# if (stardata->model.time < stardata->model.max_evolution_time)
# {
# Printf("DAVID_SCO %30.12e %g %g %g %g %d %d\\n",
# //
# stardata->model.time, // 1
# stardata->star[0].mass, //2 test_pop = Population()
# stardata->previous_stardata->star[0].mass, //3
# return all info:
all_info_dict = test_pop.return_all_info()
all_info_keys = all_info_dict.keys()
# stardata->star[0].radius, //4 assert 'population_settings' in all_info_keys, "Missing information in the all_info settings dict"
# stardata->previous_stardata->star[0].radius, //5 assert 'binary_c_defaults' in all_info_keys, "Missing information in the all_info settings dict"
assert 'binary_c_version_info' in all_info_keys, "Missing information in the all_info settings dict"
assert 'binary_c_help_all' in all_info_keys, "Missing information in the all_info settings dict"
def test_evolve_single_system_population():
"""
Unit test for the evolve_single_system function of the population object
"""
test_pop = Population()
test_pop.set(
M_1=10,
M_2 = 14.0, # Msun
separation = 0, # 0 = ignored, use period
orbital_period = 4530.0, # days
eccentricity = 0.0,
metallicity = 0.02,
max_evolution_time = 15000,
verbosity=0,
)
output = test_pop.evolve_single()
assert "SINGLE_STAR_LIFETIME" in output, "Failed to evolve a system"
# def test_custom_logging_memory_adress():
def test_C_auto_logging_population():
"""
Unit test for the creating a custom logging output by setting the
C_auto_logging value with a list containing a headerline as key and a list of parameters as value
"""
test_pop = Population()
test_pop.set(
M_1 = 14,
M_2 = 10.0, # Msun
separation = 0, # 0 = ignored, use period
orbital_period = 4530.0, # days
eccentricity = 0.0,
metallicity = 0.02,
max_evolution_time = 15000,
verbosity=0,
)
test_pop.set(C_auto_logging={'MY_HEADER_LINE': ['star[0].mass', 'star[1].mass', 'model.probability']})
output = test_pop.evolve_single()
# stardata->star[0].stellar_type, //6 print(output.splitlines()[0].split())
# stardata->previous_stardata->star[0].stellar_type //7
# ); first_line = output.splitlines()[0].split()
# };
# /* Kill the simulation to save time */ assert first_line[0] == "MY_HEADER_LINE" , "Failed to set the custom logging correctly"
# stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm; assert first_line[1] == "14" , "Failed to set the custom logging correctly. First mass should be 14"
# }; assert first_line[2] == "10" , "Failed to set the custom logging correctly. Second mass should be 10"
# """ assert first_line[3] == "1" , "Failed to set the custom logging correctly. Probability should be 1"
# )
def test_C_logging_code_population():
"""
Unit test for the creating a custom logging output by setting the
C_logging_code which contains the exact print statement (including possible logic).
This will be evaluated and put into binary_c
"""
test_pop = Population()
test_pop.set(
M_1 = 14,
M_2 = 10.0, # Msun
separation = 10000, # 0 = ignored, use period
# orbital_period = 4530.0, # days
eccentricity = 0.0,
metallicity = 0.02,
max_evolution_time = 15000,
verbosity=0,
)
test_pop.set(C_logging_code='Printf("MY_STELLAR_DATA mass=%g separation=%g probability=%g\\n", stardata->star[0].mass, stardata->common.orbit.separation, stardata->model.probability);')
output = test_pop.evolve_single()
first_line = output.splitlines()[0].split()
assert first_line[0] == "MY_STELLAR_DATA" , "Failed to set the custom logging correctly. Headerline should be MY_STELLAR_DATA"
assert first_line[1] == "mass=14" , "Failed to set the custom logging correctly. First mass should be 14"
assert first_line[2] == "separation=10000" , "Failed to set the custom logging correctly. Separation should be 10000"
assert first_line[3] == "probability=1" , "Failed to set the custom logging correctly. Probability should be 1"
def parse_function(self, output):
"""
Dummy parse function for handling the output of a system
"""
parameters = ['mass_1', 'separation', 'probability']
separator='\t'
outfilename = os.path.join(self.grid_options['tmp_dir'], 'output_parse_function_test.txt')
if os.path.isfile(outfilename):
os.remove(outfilename)
for el in output_lines(output):
headerline = el.split()[0]
if (headerline=='MY_STELLAR_DATA'):
values = el.split()[1:]
if not os.path.exists(outfilename):
with open(outfilename, 'w') as f:
f.write(separator.join(parameters)+'\n')
with open(outfilename, 'a') as f:
f.write(separator.join(values)+'\n')
def test_parse_function_population():
"""
Unit test to test the ise of a parsing function for the output
"""
test_pop = Population()
test_pop.set(
M_1=10,
M_2 = 14.0, # Msun
separation = 0, # 0 = ignored, use period
orbital_period = 4530.0, # days
eccentricity = 0.0,
metallicity = 0.02,
max_evolution_time = 15000,
verbosity=0,
)
test_pop.set(
C_logging_code='Printf("MY_STELLAR_DATA mass=%g separation=%g probability=%g\\n", stardata->star[0].mass, stardata->common.orbit.separation, stardata->model.probability);'
)
test_pop.set(
parse_function=parse_function
)
# Run with parse function
test_pop.evolve_single(parse_function)
outfilename = os.path.join(test_pop.grid_options['tmp_dir'], 'output_parse_function_test.txt')
assert os.path.isfile(outfilename), "Output file not created!"
with open(outfilename, 'r') as outfile:
output = outfile.readlines()
first_line_split = output[0].strip().split("\t")
assert first_line_split[0] == 'mass_1', "Output header not created correctly"
assert first_line_split[1] == 'separation', "Output header not created correctly"
assert first_line_split[2] == 'probability', "Output header not created correctly"
assert len(output) > 1, "File doesn't seem to contain any real data"
if __name__ == "__main__":
# test_setup_population()
# test_set_value_population()
# test_set_argline_output_population()
# test_version_info_dict_population()
# test_settings_output_population()
# test_all_info_population()
# test_evolve_single_system_population()
# test_C_auto_logging_population()
# test_C_logging_code_population()
# test_parse_function_population()
print('yo')
quit()
# def output_lines(output): # print(len(test_pop.return_binary_c_defaults()))
# """ # print('\n\n')
# Function that outputs the lines that were recieved from the binary_c run. # print(len(test_pop.cleanup_defaults()))
# """
# return output.splitlines() ## Use custom arg file
# test_pop.evolve_population(custom_arg_file='/home/david/projects/binary_c_root/binary_c-python/tests/population/custom_arg_file.txt')
# def parse_function(self, output):
# # extract info from the population instance
# # TODO: think about whether this is smart. Passing around this object might be an overkill
# # Get some information from the
# data_dir = self.custom_options['data_dir']
# base_filename = self.custom_options['base_filename']
# outfilename = os.path.join(data_dir, base_filename)
# # TODO: make population settings available in this function
# for el in output_lines(output):
# headerline = el.split()[0]
# if (headerline=='DAVID_SCO'):
# parameters = ['time', 'mass_1', 'prev_mass_1', 'radius_1', 'prev_radius_1', 'stellar_type_1', 'prev_stellar_type_1']
# values = el.split()[1:]
# seperator='\t'
# if not os.path.exists(outfilename):
# with open(outfilename, 'w') as f:
# f.write(seperator.join(parameters)+'\n')
# with open(outfilename, 'a') as f:
# f.write(seperator.join(values)+'\n')
# #test_pop.evolve_single(parse_function)
# test_pop.set(M_1=90, data_dir=os.path.join(os.environ['BINARYC_DATA_ROOT'], 'testing_python'), base_filename='test_pop.dat')
# test_pop.evolve_single(parse_function)
# test_pop.set(M_1=80)
# test_pop.evolve_single(parse_function)
# test_pop.set(M_1=70)
# test_pop.evolve_single(parse_function)
# test_pop.set(M_1=60)
# test_pop.evolve_single(parse_function)
##################
## CHeck size of commands:
## Using pickle to dump it.
## https://stackoverflow.com/questions/563840/how-can-i-check-the-memory-usage-of-objects-in-ipython/565382#565382
# def generate_commands_return_size(amt_systems):
# print("Doing {} systems".format(amt_systems))
# start_generate_time = time.time()
# commands = [test_pop.return_argline() for el in range(amt_systems)]
# stop_generate_time = time.time()
# size = sys.getsizeof(pickle.dumps(commands))
# size_in_mb = size/(1024*1024)
# return size_in_mb
# amounts = [1, 10, 100, 1000, 10000, 100000, 1000000, 10000000]
# sizes = []
# for amount in amounts:
# sizes.append(generate_commands_return_size(amount))
# plt.title('size scaling for binary_c commands with:\n`{}`'.format(test_pop.return_argline()))
# plt.plot(amounts, sizes, 'bo', label='MB for ')
# plt.legend()
# plt.xlabel("Amount of systems")
# plt.ylabel("Size in MB")
# plt.xscale('log')
# plt.yscale('log')
# plt.savefig('sizes_for_commands.png')
# plt.show()
# def ding(val):
# return val
# test_pop.set(extra_prob_function=ding)
### Cleaning up custom logging code
# test_pop.set(C_logging_code='Printf("MY_STELLAR_DATA time=%g mass=%g radius=%g\\n", stardata->model.time, stardata->star[0].mass, stardata->star[0].radius);')
# print(test_pop.evolve_single())
# quit()
### Grid generating testing ### Grid generating testing
......
adding: C_logging_code=
if(stardata->star[0].SN_type != SN_NONE)
{
if (stardata->model.time < stardata->model.max_evolution_time)
{
Printf("DAVID_SN %30.12e %g %g %g %d\n",
//
stardata->model.time, // 1
stardata->star[0].mass, //2
stardata->previous_stardata->star[0].mass, //3
stardata->star[0].pms_mass, //4
stardata->star[0].SN_type //5
);
};
/* Kill the simulation to save time */
stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;
};
to grid_options
adding: separation=1000000000 to BSE_options
adding: orbital_period=400000000 to BSE_options
adding: metallicity=0.002 to BSE_options
!! Key doesnt match previously known parameter: adding: data_dir=/vol/ph/astro_code/dhendriks/binaryc/results/testing_python/multiprocessing2/surreypc to custom_options
/usr/bin/ld: /tmp/ccca3KKm.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/tmp/ccca3KKm.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Traceback (most recent call last):
File "multiprocessing_via_population_comparison.py", line 106, in <module>
res = test_pop.evolve_population_comparison(parse_function, amt=int(amt_systems), nodes=int(amt_nodes))
File "/vol/ph/astro_code/dhendriks/binaryc/binary_c-python/binarycpython/utils/grid.py", line 456, in evolve_population_comparison
self.set_custom_logging()
File "/vol/ph/astro_code/dhendriks/binaryc/binary_c-python/binarycpython/utils/grid.py", line 364, in set_custom_logging
] = create_and_load_logging_function(custom_logging_code)
File "/vol/ph/astro_code/dhendriks/binaryc/binary_c-python/binarycpython/utils/custom_logging_functions.py", line 302, in create_and_load_logging_function
outfile_name=library_name,
File "/vol/ph/astro_code/dhendriks/binaryc/binary_c-python/binarycpython/utils/custom_logging_functions.py", line 262, in compile_shared_lib
res = subprocess.check_output("{command}".format(command=command), shell=True)
File "/user/HS128/dh00601/.pyenv/versions/3.6.4/lib/python3.6/subprocess.py", line 336, in check_output
**kwargs).stdout
File "/user/HS128/dh00601/.pyenv/versions/3.6.4/lib/python3.6/subprocess.py", line 418, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command 'gcc -DALIGNSIZE=8 -std=gnu99 -march=native -mtune=native -ffast-math -fno-associative-math -fno-finite-math-only -fsignaling-nans -fomit-frame-pointer -DCPUFREQ=3600 -DOPERATING_SYSTEM=linux -DLINUX -DPOSIX -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFPU_CONTROL -DGIT_REVISION=4797:20200127:369f3df -DGIT_URL=gitlab@gitlab.eps.surrey.ac.uk:ri0005/binary_c.git -D__HAVE_LIBC__ -D__HAVE_LIBGSL__ -I/user/HS128/dh00601/.local/include -DUSE_GSL -D__HAVE_LIBGSLCBLAS__ -D__HAVE_LIBBACKTRACE__ -D__HAVE_LIBBSD__ -D__HAVE_LIBM__ -D__HAVE_IEEE754_H__ -D__HAVE_DRAND48__ -D__HAVE_HSEARCH_DATA__ -D__HAVE_MALLOC_H__ -D__HAVE_SETITIMER__ -D__HAVE_PKG_CONFIG__ -D__HAVE_VALGRIND__ -D__SHOW_STARDATA__ -D__DIFF_STARDATA__ -O3 -shared -D_SEARCH_H -L/vol/ph/astro_code/dhendriks/binaryc/binary_c/src -L/user/HS128/dh00601/.local/lib -L/vol/ph/astro_code/dhendriks/binaryc/binary_c/src -lbinary_c -lc -lgsl -lgsl -lgslcblas -lm -lgslcblas -lbacktrace -lbsd -lm -o /tmp/binary_c_python/libcustom_logging_db727f25d8e14d4fbeaed42a32f23764.so /tmp/binary_c_python/custom_logging.c -I/vol/ph/astro_code/dhendriks/binaryc/binary_c -I/vol/ph/astro_code/dhendriks/binaryc/binary_c/src -I/usr/include -I/usr/local/include -I/vol/ph/astro_code/dhendriks/binaryc/binary_c/src' returned non-zero exit status 1.
###
https://github.com/pybind/pybind11/issues/1234 might be useful
(binaryc_py3.6.4) ➜ population git:(population) ✗ machine_overview
System: Host: phws71 Kernel: 4.4.0-171-generic x86_64 (64 bit gcc: 5.4.0) Desktop: Xfce 4.12.3 (Gtk 2.24.28)
Distro: Ubuntu 16.04 xenial
Machine: System: Dell product: OptiPlex 7050
Mobo: Dell model: 0XHGV1 v: A01 Bios: Dell v: 1.8.3 date: 03/23/2018
CPU: Quad core Intel Core i5-6500 (-MCP-) cache: 6144 KB
flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 25536
clock speeds: max: 3600 MHz 1: 864 MHz 2: 881 MHz 3: 863 MHz 4: 849 MHz
Graphics: Card: Intel HD Graphics 530 bus-ID: 00:02.0
Display Server: X.Org 1.18.4 drivers: intel (unloaded: fbdev,vesa)
Resolution: 1920x1080@60.00hz, 1920x1080@60.00hz
GLX Renderer: Mesa DRI Intel HD Graphics 530 (Skylake GT2)
GLX Version: 3.0 Mesa 18.0.5 Direct Rendering: Yes
Audio: Card Intel 200 Series PCH HD Audio driver: snd_hda_intel bus-ID: 00:1f.3
Sound: Advanced Linux Sound Architecture v: k4.4.0-171-generic
Network: Card: Intel Ethernet Connection (5) I219-LM driver: e1000e v: 3.2.6-k bus-ID: 00:1f.6
IF: enp0s31f6 state: up speed: 1000 Mbps duplex: full mac: 8c:ec:4b:7b:54:21
Drives: HDD Total Size: 512.1GB (25.5% used) ID-1: /dev/sda model: ADATA_SSD_DM900 size: 512.1GB
Partition: ID-1: / size: 184G used: 55G (32%) fs: ext4 dev: /dev/dm-0
ID-2: /tmp size: 9.1G used: 38M (1%) fs: ext4 dev: /dev/dm-2
ID-3: swap-1 size: 8.19GB used: 0.24GB (3%) fs: swap dev: /dev/dm-1
RAID: No RAID devices: /proc/mdstat, md_mod kernel module present
Sensors: System Temperatures: cpu: 29.8C mobo: 27.8C
Fan Speeds (in rpm): cpu: N/A
Info: Processes: 308 Uptime: 10 days Memory: 6456.8/15911.6MB Init: systemd runlevel: 5 Gcc sys: 5.4.0
Client: Shell (zsh 5.6.2) inxi: 2.2.35
(binaryc_py3.6.4) ➜ population git:(population) ✗ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This diff is collapsed.
File added
tests/scaling/scaling_plots/speedup_scaling_Astro1.png

64.3 KiB

This diff is collapsed.
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment