thesis version

This commit is contained in:
Alexis Pereda 2021-05-10 18:11:23 +02:00
commit 8d0b353391
152 changed files with 28007 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
build/
debug/
clang/
release/
.old
*.pyc

198
CMakeLists.txt Normal file
View File

@ -0,0 +1,198 @@
cmake_minimum_required(VERSION 3.0)
get_filename_component(project_name ${CMAKE_CURRENT_SOURCE_DIR} NAME)
project(${project_name})
set(EXTENSION "cpp")
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 14)
set(GEN_BINARY OFF)
set(GEN_LIBRARY OFF)
set(LIB_TYPE STATIC) # NONE, STATIC, SHARED, MODULE
set(LIBS_TYPE STATIC)
set(FLAGS_ANY "-Wall -Wextra -fopenmp -Winline -Wfatal-errors")
set(FLAGS_DEBUG "-DDEBUG -Og -g -fsanitize=thread")
set(FLAGS_RELEASE "-DNDEBUG -O2")
set(SRCDIRS src)
set(LIBSDIRS libsrc)
set(TESTSDIRS tests)
set(EXAMPLESDIRS examples benchmarks)
set(MANDIR man)
set(INCLUDE_DIRS inc)
set(LIBRARIES "")
set(USER_LIBRARIES "")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS_ANY}")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FLAGS_ANY} ${FLAGS_DEBUG}")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${FLAGS_ANY} ${FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS_ANY}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAGS_ANY} ${FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${FLAGS_ANY} ${FLAGS_RELEASE}")
if(USE_SANITIZER STREQUAL "Address")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
elseif(USE_SANITIZER STREQUAL "Leak")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=leak")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=leak")
elseif(USE_SANITIZER STREQUAL "Thread")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
elseif(USE_SANITIZER STREQUAL "Undefined")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
endif()
## Libraries
if(NOT ${LIB_TYPE} MATCHES "^NONE$")
# Project library
if(GEN_LIBRARY)
set(lib_src "")
foreach(srcdir ${SRCDIRS})
set(srcpath ${CMAKE_CURRENT_SOURCE_DIR}/${srcdir})
file(GLOB_RECURSE tmpsrc ${srcpath}/*.${EXTENSION})
list(APPEND lib_src ${tmpsrc})
endforeach()
set(lib ${PROJECT_NAME})
if(lib_src)
message(STATUS "+ Library: ${lib}")
add_library(${lib} ${LIB_TYPE} ${lib_src})
target_include_directories(${lib} PUBLIC ${INCLUDE_DIRS})
target_link_libraries(${lib} ${LIBRARIES})
list(APPEND USER_LIBRARIES ${lib})
else()
message(WARNING "! Library ${lib}: no sources")
endif()
endif()
endif()
## Other libraries
if(NOT ${LIBS_TYPE} MATCHES "^NONE$")
foreach(libsdir ${LIBSDIRS})
set(libspath ${CMAKE_CURRENT_SOURCE_DIR}/${libsdir})
file(GLOB libs RELATIVE ${libspath} ${libspath}/*)
if(libs)
foreach(child ${libs})
set(lib "")
if(IS_DIRECTORY ${libspath}/${child})
set(lib ${child})
file(GLOB_RECURSE lib_src ${libspath}/${child}/*.${EXTENSION})
else()
message(WARNING "! Ignoring file: ${libsdir}/${child}")
endif()
if(lib)
if(lib_src)
message(STATUS "+ Library: ${lib}")
add_library(${lib} ${LIBS_TYPE} ${lib_src})
target_include_directories(${lib} PUBLIC ${INCLUDE_DIRS})
target_link_libraries(${lib} ${LIBRARIES})
list(APPEND USER_LIBRARIES ${lib})
else()
message(WARNING "! Library ${lib}: no sources")
endif()
endif()
endforeach()
endif()
endforeach()
endif()
## Binary
if(GEN_BINARY)
set(src "")
foreach(srcdir ${SRCDIRS})
set(srcpath ${CMAKE_CURRENT_SOURCE_DIR}/${srcdir})
file(GLOB_RECURSE tmpsrc ${srcpath}/*.${EXTENSION})
list(APPEND src ${tmpsrc})
endforeach()
set(bin ${PROJECT_NAME})
if(src)
if(GEN_LIBRARY)
set(bin ${bin}.bin)
endif()
message(STATUS "+ Binary: ${bin}")
add_executable(${bin} ${src})
target_include_directories(${bin} PUBLIC ${LIBSDIRS} ${INCLUDE_DIRS})
target_link_libraries(${bin} ${LIBRARIES} ${USER_LIBRARIES})
else()
message(WARNING "! Binary ${bin}: no sources")
endif()
endif()
## Tests
foreach(testsdir ${TESTSDIRS})
set(testspath ${CMAKE_CURRENT_SOURCE_DIR}/${testsdir})
file(GLOB_RECURSE tests_src ${testspath}/*.${EXTENSION})
if(tests_src)
set(tests ${testsdir}_${PROJECT_NAME})
message(STATUS "+ Tests: ${tests}")
add_executable(${tests} ${tests_src})
target_include_directories(${tests} PUBLIC ${SRCDIRS} ${LIBSDIRS} ${INCLUDE_DIRS})
target_link_libraries(${tests} ${LIBRARIES} ${USER_LIBRARIES})
endif()
endforeach()
## Examples
foreach(examplesdir ${EXAMPLESDIRS})
set(examplespath ${CMAKE_CURRENT_SOURCE_DIR}/${examplesdir})
file(GLOB examples RELATIVE ${examplespath} ${examplespath}/*)
if(examples)
foreach(child ${examples})
set(example_bin_filename "")
set(example "")
if(IS_DIRECTORY ${examplespath}/${child})
set(example_bin_filename ${child})
set(example ${examplesdir}_${example_bin_filename})
file(GLOB_RECURSE example_src ${examplespath}/${child}/*.${EXTENSION})
else()
get_filename_component(extension ${child} EXT)
if(${extension} MATCHES "^.${EXTENSION}$")
get_filename_component(example_name ${child} NAME_WE)
set(example_bin_filename ${example_name})
set(example ${examplesdir}_${example_bin_filename})
set(example_src ${examplespath}/${child})
endif()
endif()
if(example)
if(example_src)
message(STATUS "+ Example: ${examplesdir}/${example}")
add_executable(${example} ${example_src})
target_include_directories(${example} PUBLIC ${SRCDIRS} ${LIBSDIRS} ${INCLUDE_DIRS})
target_link_libraries(${example} ${LIBRARIES} ${USER_LIBRARIES})
set_target_properties(${example} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${examplesdir})
set_target_properties(${example} PROPERTIES OUTPUT_NAME ${example_bin_filename})
else()
message(WARNING "! Example ${example}: no sources")
endif()
endif()
endforeach()
endif()
endforeach()
## Man pages
set(MANPATH ${CMAKE_CURRENT_SOURCE_DIR}/${MANDIR})
set(MAN_OUTPATH ${CMAKE_BINARY_DIR}/deb/usr/share/man)
file(GLOB_RECURSE man_src RELATIVE ${MANPATH} ${MANPATH}/*)
if(man_src)
set(man_outfiles "")
foreach(man_file IN LISTS man_src)
set(man_outfile ${MAN_OUTPATH}/${man_file}.gz)
get_filename_component(man_outdir ${man_outfile} DIRECTORY)
list(APPEND man_outfiles ${man_outfile})
message(STATUS "+ manpage: ${man_file}")
add_custom_command(OUTPUT ${man_outfile}
COMMAND ${CMAKE_COMMAND} -E make_directory ${man_outdir}
COMMAND ${CMAKE_COMMAND} -E copy ${MANPATH}/${man_file} ${MAN_OUTPATH}/${man_file}
COMMAND gzip -f ${MAN_OUTPATH}/${man_file}
DEPENDS ${MANPATH}/${man_file})
endforeach()
add_custom_target(man ALL DEPENDS ${man_outfiles})
endif()

674
LICENSE Normal file
View File

@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
pfor
Copyright (C) 2021 phd / dev
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) 2021 phd / dev
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.

142
README.md Normal file
View File

@ -0,0 +1,142 @@
# About
This is an active library, using C++ template metaprogramming, to automate loop parallelisation.
This work has been done for my Ph.D. thesis.
## Brief
It uses [expression templates](https://en.wikipedia.org/wiki/Expression_templates) and an [EDSL](https://en.wikipedia.org/wiki/Domain-specific_language)
to build an [AST](https://en.wikipedia.org/wiki/AST) of loops at compile-time.
This AST is analysed to determine first which instructions of a given loop are interdependent, then for each instruction group
if it can be run in parallel with itself at different iterations of the loop.
The interdependence of instructions relies on how variables are accessed (read/write).
To identify instruction groups that can be run in parallel, the library uses index functions (in array accesses) and a set of rules
depending on these functions.
According to this, the library generates sequential and/or parallel loops.
## Example
Given this source code:
```cpp
// a, b, c, d, e and f are arrays
for(int i = 0; i < n; ++i) {
a[i] = a[i] * b[i];
c[i] = c[i+1] - d[i];
b[i] = b[i] + i;
d[i] = std::pow(c[i], e[i]);
f[i*i] = 2 * f[i*i];
}
```
By writing it like this:
```cpp
// a, b, c, d, e and f are expression template operands
// pow is an automatically generated expression template function
Index i;
parallelFor(Range{0, n},
a[i] = a[i] * b[i],
c[i] = c[i+ctv<1>] + d[i],
b[i] = b[i] + i,
d[i] = pow(c[i], e[i]),
f[injective(i*i)] = 2 * f[injective(i*i)]
);
```
The library will automatically produce these two loops:
```bash
for(int i = 0; i < n; ++i) {
c[i] = c[i+1] + d[i];
d[i] = std::pow(c[i], e[i]);
}
# pragma omp parallel for
for(int i = 0; i < n; ++i) {
a[i] = a[i] * b[i];
b[i] = b[i] + i;
f[i*i] = 2 * f[i*i];
}
```
## Performances
### Compilation time
This library runs mostly during the compilation and therefore extends its duration.
We ran tests for four sets of source codes:
<ul>
<li>"dep/fixed" corresponding to dependent instructions with common index functions;
<img src="https://phd.pereda.fr/assets/pfor/ct_legend.png" width="150" align="right">
</li>
<li>"indep/fixed" corresponding to independent instructions with common index functions;</li>
<li>"dep/rand" corresponding to dependent instructions with random index functions;</li>
<li>"indep/rand" corresponding to independent instructions with random index functions.</li>
</ul>
For more specific information, see the `ctbenchmarks` directory.
The compilation time is not significantly affected by the number of loops as shown below:
<div align="center"><img src="https://phd.pereda.fr/assets/pfor/ct_var_loops.png" width="500"></div>
As expected, however, the compilation time increases (exponentially) with the number of instructions inside an unique loop:
<div align="center"><img src="https://phd.pereda.fr/assets/pfor/ct_var_instructions.png" width="500"></div>
This could be improved but was not a priority as usually a single loop does not run so many instructions.
### Execution time
The point of the library is to provide a solution to automatically run in parallel whenever possible,
not to do better than what one can expect from classic parallelisation tools like [OpenMP](https://www.openmp.org/).
In contrast, when a loop cannot be run in parallel, the library should not cause runtime overhead.
We ran tests with and without using the library:
<ul>
<li>"seq" corresponding to a sequential execution without the library;
<img src="https://phd.pereda.fr/assets/pfor/rt_legend.png" width="150" align="right">
</li>
<li>"omp" corresponding to a parallel execution without the library, using OpenMP, when applicable;</li>
<li>"gen_omp" corresponding to a parallel execution with the library generating OpenMP code;</li>
<li>"gen_thread" corresponding to a parallel execution with the library generating multi-threaded loop.</li>
</ul>
For both "gen_omp" and "gen_thread", the library will actually generate a sequential code if the loop cannot be run in parallel.
The two figures below shows that using the library does not induce significant runtime overhead, both for sequential and
parallel (with 18 cores) executions:
<div align="center"><img src="https://phd.pereda.fr/assets/pfor/rt_seq.png" width="500"></div>
<div align="center"><img src="https://phd.pereda.fr/assets/pfor/rt_par_18.png" width="500"></div>
Obtained speed up is equivalent using the library with respect to a handwritten OpenMP program:
<div align="center"><img src="https://phd.pereda.fr/assets/pfor/rt_speedup.png" width="500"></div>
## Related publications
- "Static Loop Parallelization Decision Using Template Metaprogramming", HPCS 2018 (IEEE) [10.1109/HPCS.2018.00159](https://doi.org/10.1109/HPCS.2018.00159)
## Organisation
Main directories:
- `src/pfor`: the library sources;
- `examples`: some examples using the library;
- `[cr]tbenchmarks`: scripts for compile-time/run-time benchmarking;
- `results`: results presented in the thesis, obtained using mentioned scripts and codes.
## Usage
To produce the `Makefile` and build the project:
```bash
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
```
To run examples:
```bash
./build/examples/${example_name}
```

231
benchmarks/basic.cpp Normal file
View File

@ -0,0 +1,231 @@
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include "common.h"
constexpr std::size_t K = 1'000;
std::size_t pfor::ParallelForParameters::nThreads{1};
struct Arguments {
std::size_t arraySize;
std::string method;
std::size_t sample;
};
Arguments processCLA(int argc, char** argv) {
if(argc < 4) {
std::cerr << "Usage: " << *argv << " N method #sample [nThreads]" << std::endl;
std::cerr << " N: array size (1..1000000)" << std::endl;
std::cerr << " method: {seq, omp, gen_omp, gen_thread}" << std::endl;
std::cerr << " #sample: {0: full sequential, 1: full parallel, 2: mixed sequential/parallel}" << std::endl;
std::cerr << " nThreads: defaults to 1" << std::endl;
std::exit(1);
}
Arguments args;
{
std::istringstream iss{argv[1]};
iss >> args.arraySize;
}
args.method = std::string{argv[2]};
{
std::istringstream iss{argv[3]};
iss >> args.sample;
}
if(argc >= 5) {
std::istringstream iss{argv[4]};
iss >> pfor::ParallelForParameters::nThreads;
}
if(args.arraySize < 1 || args.arraySize > 10000000) {
std::cerr << "N out of bounds" << std::endl;
std::exit(1);
}
if(args.method != "seq" && args.method != "omp" && args.method != "gen_omp" && args.method != "gen_thread") {
std::cerr << "method out of bounds" << std::endl;
std::exit(1);
}
if(args.sample > 2) {
std::cerr << "#sample out of bounds" << std::endl;
std::exit(1);
}
if(args.method == "omp" && args.sample == 0) {
std::cerr << "incoherent method/#sample" << std::endl;
std::exit(1);
}
return args;
}
using T = int;
int main(int argc, char **argv) {
Arguments args = processCLA(argc, argv);
long const N = args.arraySize;
OPERAND(T, a0, N, i++);
OPERAND(T, a1, N, i++);
OPERAND(T, a2, N, i++);
OPERAND(T, a3, N, i++);
OPERAND(T, a4, N, i++);
OPERAND(T, a5, N, i++);
OPERAND(T, a6, N, i++);
OPERAND(T, a7, N, i++);
if(args.sample == 0) {
/*
* Sample 0: sequential
*/
// arraysPrinter(K, N, a0, a1, a2, a5);
if(args.method == "seq") {
BENCH(K)
for(long i = 0; i < N-1; ++i) {
a0_[i] = a0_[i+1] + a1_[i] * a2_[i];
a1_[i] = a1_[i+1] + a2_[i] * a3_[i];
a2_[i] = a2_[i+1] + a3_[i] * a4_[i];
a5_[i] = a5_[i+1] + a6_[i] * a7_[i];
}
END_BENCH();
} else if(args.method == "gen_omp") {
BENCH(K)
pfor::parallelFor<pfor::ForLoopOMP>(pfor::Range{0, N-1}, [&](pfor::Index i) {
return
a0[i] = a0[i+_<1>] + a1[i] * a2[i],
a1[i] = a1[i+_<1>] + a2[i] * a3[i],
a2[i] = a2[i+_<1>] + a3[i] * a4[i],
a5[i] = a5[i+_<1>] + a6[i] * a7[i];
});
END_BENCH();
} else if(args.method == "gen_thread") {
BENCH(K)
pfor::parallelFor<pfor::ForLoopThread>(pfor::Range{0, N-1}, [&](pfor::Index i) {
return
a0[i] = a0[i+_<1>] + a1[i] * a2[i],
a1[i] = a1[i+_<1>] + a2[i] * a3[i],
a2[i] = a2[i+_<1>] + a3[i] * a4[i],
a5[i] = a5[i+_<1>] + a6[i] * a7[i];
});
END_BENCH();
}
// arraysPrinter(K, N, a0, a1, a2, a5);
} else if(args.sample == 1) {
/*
* Sample 1: parallel
*/
if(args.method == "seq") {
BENCH(K)
for(long i = 0; i < N; ++i) {
a0_[i] = a0_[i] + a1_[i] * a2_[i];
a1_[i] = a1_[i] + a2_[i] * a3_[i];
a2_[i] = a2_[i] + a3_[i] * a4_[i];
a5_[i] = a5_[i] + a6_[i] * a7_[i];
}
END_BENCH();
} else if(args.method == "omp") {
BENCH(K)
#pragma omp parallel for num_threads(pfor::ParallelForParameters::nThreads)
for(long i = 0; i < N; ++i) {
a0_[i] = a0_[i] + a1_[i] * a2_[i];
a1_[i] = a1_[i] + a2_[i] * a3_[i];
a2_[i] = a2_[i] + a3_[i] * a4_[i];
a5_[i] = a5_[i] + a6_[i] * a7_[i];
}
END_BENCH();
} else if(args.method == "gen_omp") {
BENCH(K)
pfor::parallelFor<pfor::ForLoopOMP>(pfor::Range{0, N}, [&](pfor::Index i) {
return
a0[i] = a0[i] + a1[i] * a2[i],
a1[i] = a1[i] + a2[i] * a3[i],
a2[i] = a2[i] + a3[i] * a4[i],
a5[i] = a5[i] + a6[i] * a7[i];
});
END_BENCH();
} else if(args.method == "gen_thread") {
BENCH(K)
pfor::parallelFor<pfor::ForLoopThread>(pfor::Range{0, N}, [&](pfor::Index i) {
return
a0[i] = a0[i] + a1[i] * a2[i],
a1[i] = a1[i] + a2[i] * a3[i],
a2[i] = a2[i] + a3[i] * a4[i],
a5[i] = a5[i] + a6[i] * a7[i];
});
END_BENCH();
}
} else if(args.sample == 2) {
/*
* Sample 2: mixed sequential and parallel
*/
// arraysPrinter(K, N, a0, a1, a2, a3, a4, a5, a6, a7);
if(args.method == "seq") {
BENCH(K)
for(long i = 0; i < N-1; ++i) {
a0_[i] = a0_[i] + a1_[i] * a2_[i];
a1_[i] = a1_[i] + a2_[i] * a3_[i];
}
for(long i = 0; i < N-1; ++i) {
a4_[i] = a4_[i+1] + a5_[i] * a7_[i];
a5_[i] = a5_[i+1] + a6_[i] * a7_[i];
}
END_BENCH();
} else if(args.method == "omp") {
BENCH(K)
#pragma omp parallel for num_threads(pfor::ParallelForParameters::nThreads)
for(long i = 0; i < N-1; ++i) {
a0_[i] = a0_[i] + a1_[i] * a2_[i];
a1_[i] = a1_[i] + a2_[i] * a3_[i];
}
// Sequential
for(long i = 0; i < N-1; ++i) {
a4_[i] = a4_[i+1] + a5_[i] * a7_[i];
a5_[i] = a5_[i+1] + a6_[i] * a7_[i];
}
END_BENCH();
} else if(args.method == "gen_omp") {
BENCH(K)
pfor::parallelFor<pfor::ForLoopOMP>(pfor::Range{0, N-1}, [&](pfor::Index i) {
return
a0[i] = a0[i] + a1[i] * a2[i],
a1[i] = a1[i] + a2[i] * a3[i],
a4[i] = a4[i+_<1>] + a5[i] * a7[i],
a5[i] = a5[i+_<1>] + a6[i] * a7[i];
});
END_BENCH();
} else if(args.method == "gen_thread") {
BENCH(K)
pfor::parallelFor<pfor::ForLoopThread>(pfor::Range{0, N-1}, [&](pfor::Index i) {
return
a0[i] = a0[i] + a1[i] * a2[i],
a1[i] = a1[i] + a2[i] * a3[i],
a4[i] = a4[i+_<1>] + a5[i] * a7[i],
a5[i] = a5[i+_<1>] + a6[i] * a7[i];
});
END_BENCH();
}
// arraysPrinter(K, N, a0, a1, a2, a3, a4, a5, a6, a7);
}
if(rand()==rand()) arraysPrinter(1ul, N, a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_);
END_OPERAND(a0);
END_OPERAND(a1);
END_OPERAND(a2);
END_OPERAND(a3);
END_OPERAND(a4);
END_OPERAND(a5);
END_OPERAND(a6);
END_OPERAND(a7);
}

65
benchmarks/common.h Normal file
View File

@ -0,0 +1,65 @@
#ifndef PFOR_BENCHMARKS_COMMON_H
#define PFOR_BENCHMARKS_COMMON_H
#include <iostream>
#include <sys/time.h>
#include <sys/resource.h>
#include <pfor/pfor.h>
template<std::size_t n>
constexpr auto _ = pfor::ctv<n>;
using TimePoint = std::tuple<long, long>;
TimePoint timepoint() {
struct rusage usage;
getrusage(RUSAGE_SELF, &usage);
long realSec = usage.ru_utime.tv_sec + usage.ru_stime.tv_sec;
long realUsec = usage.ru_utime.tv_usec + usage.ru_stime.tv_usec;
return {realSec, realUsec};
}
double timediff(TimePoint const& from, TimePoint const& to) {
return std::get<0>(to)-std::get<0>(from) + (std::get<1>(to)-std::get<1>(from))/1'000'000.;
}
// Operand utility
#define OPERAND(Type, name, size, filler) \
Type * name##_ = new Type[size]; \
{ \
std::size_t i = 0; \
std::generate_n(name##_, size, [&i]{ return filler; }); \
} \
auto name = pfor::Operand<Type*, class ID##name>(name##_);
#define END_OPERAND(name) delete[] name##_
// Bench utility
#define BENCH(K) { \
TimePoint tp0 = timepoint(); \
for(std::size_t k_ = 0; k_ < K; ++k_) {
#define END_BENCH() } \
TimePoint tp1 = timepoint(); \
std::cout << "time: " << timediff(tp0, tp1) << std::endl; \
}
template<typename K, typename S>
void arraysPrinter(K, S) {}
template<typename K, typename S, typename T, typename... Ts>
void arraysPrinter(K k, S n, T&& array, Ts&&... arrays) {
if(k != 1) {
std::cerr << "warning: displays may be false, must set K to 1" << std::endl;
std::exit(1);
}
for(S i = 0; i < n; ++i)
std::cout << std::forward<T>(array)[i] << ", ";
std::cout << std::endl;
arraysPrinter(k, n, std::forward<Ts>(arrays)...);
}
#endif

101
benchmarks/imgpro.cpp Normal file
View File

@ -0,0 +1,101 @@
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <cmath>
#include "common.h"
constexpr std::size_t K = 1;
constexpr long W = 100'001;
constexpr long H = 100'000;
std::size_t pfor::ParallelForParameters::nThreads{1};
struct Arguments {
std::string method;
};
Arguments processCLA(int argc, char** argv) {
if(argc < 2) {
std::cerr << "Usage: " << *argv << " method [nThreads]" << std::endl;
std::cerr << " method: {seq, omp, gen_omp, gen_thread}" << std::endl;
std::cerr << " nThreads: defaults to 1" << std::endl;
std::exit(1);
}
Arguments args;
args.method = std::string{argv[1]};
if(argc >= 3) {
std::istringstream iss{argv[2]};
iss >> pfor::ParallelForParameters::nThreads;
}
if(args.method != "seq" && args.method != "omp" && args.method != "gen_omp" && args.method != "gen_thread") {
std::cerr << "method out of bounds" << std::endl;
std::exit(1);
}
return args;
}
char r(int c) { return (c>>24&0xff); }
char g(int c) { return (c>>16&0xff); }
char b(int c) { return (c>>8&0xff); }
char a(int c) { return (c>>0&0xff); }
int main(int argc, char** argv) {
Arguments args = processCLA(argc, argv);
auto img_ = new int[W*H]; // 4 channels (rgba); W*H image
auto img = pfor::Operand<decltype(img_), class Img>{img_};
auto calc_ = [](int n, int w, int s, int e) {
auto volatile c = 0;
for(int i = 0; i < 10; ++i) ++c;
return (n+w+s+e)/4;
};
auto calc = pfor::makeOperator(calc_);
if(args.method == "seq") {
BENCH(K)
for(long i = W+1; i < (H-1)*W; i += 2) {
img_[i] = calc_(img_[i-W], img_[i-1], img_[i+W], img_[i+1]);
}
END_BENCH();
} else if(args.method == "omp") {
BENCH(K)
#pragma omp parallel for num_threads(pfor::ParallelForParameters::nThreads)
for(long i = W+1; i < (H-1)*W; i += 2) {
img_[i] = calc_(img_[i-W], img_[i-1], img_[i+W], img_[i+1]);
}
END_BENCH();
} else if(args.method == "gen_omp") {
BENCH(K)
pfor::Index i;
pfor::parallelFor<pfor::ForLoopOMP>(pfor::RangeCT<W+1, 2>{(H-1)*W},
// pfor::parallelFor<pfor::ForLoopOMP>(pfor::Range{W+1, (H-1)*W, 1},
img[i] = calc(img[i-_<W>], img[i-_<1>], img[i+_<W>], img[i+_<1>])
);
END_BENCH();
} else if(args.method == "gen_thread") {
BENCH(K)
pfor::Index i;
pfor::parallelFor<pfor::ForLoopThread>(pfor::RangeCT<W+1, 2>{(H-1)*W},
img[i] = calc(img[i-_<W>], img[i-_<1>], img[i+_<W>], img[i+_<1>])
);
END_BENCH();
}
if(rand()==rand()) {
for(long i = 0; i<W*H; ++i)
std::printf("%d,", img_[i]);
std::puts("");
}
delete[] img_;
}

97
benchmarks/seq.cpp Normal file
View File

@ -0,0 +1,97 @@
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include "common.h"
constexpr std::size_t K = 1'000;
std::size_t pfor::ParallelForParameters::nThreads{1};
struct Arguments {
std::size_t arraySize;
std::string method;
};
Arguments processCLA(int argc, char **argv) {
if(argc < 2) {
std::cerr << "Usage: " << *argv << " N method" << std::endl;
std::cerr << " N: array size (1..1000000)" << std::endl;
std::cerr << " method: {seq, gen}" << std::endl;
std::exit(1);
}
Arguments args;
{
std::istringstream iss{argv[1]};
iss >> args.arraySize;
}
args.method = std::string{argv[2]};
if(args.arraySize < 1 || args.arraySize > 1000000) {
std::cerr << "N out of bounds" << std::endl;
std::exit(1);
}
if(args.method != "seq" && args.method != "gen") {
std::cerr << "method out of bounds" << std::endl;
std::exit(1);
}
return args;
}
using T = int;
int main(int argc, char **argv) {
Arguments args = processCLA(argc, argv);
std::size_t const N = args.arraySize;
OPERAND(T, a0, N, i++);
OPERAND(T, a1, N, i++);
OPERAND(T, a2, N, i++);
OPERAND(T, a3, N, i++);
OPERAND(T, a4, N, i++);
OPERAND(T, a5, N, i++);
OPERAND(T, a6, N, i++);
OPERAND(T, a7, N, i++);
/*
* Sample 0: sequential
*/
// arraysPrinter(K, N, a0, a1, a2, a5);
if(args.method == "seq") {
BENCH(K)
for(std::size_t i = 0; i < N-1; ++i) {
a0_[i] = a0_[i+1] + a1_[i] * a2_[i];
a1_[i] = a1_[i+1] + a2_[i] * a3_[i];
a2_[i] = a2_[i+1] + a3_[i] * a4_[i];
a5_[i] = a5_[i+1] + a6_[i] * a7_[i];
}
END_BENCH();
} else if(args.method == "gen") {
BENCH(K)
pfor::parallelFor(pfor::Range{0, static_cast<long>(N-1)}, [&](pfor::Index i) {
return
a0[i] = a0[i+_<1>] + a1[i] * a2[i],
a1[i] = a1[i+_<1>] + a2[i] * a3[i],
a2[i] = a2[i+_<1>] + a3[i] * a4[i],
a5[i] = a5[i+_<1>] + a6[i] * a7[i];
});
END_BENCH();
}
if(rand() == rand()) arraysPrinter(1, N, a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_);
END_OPERAND(a0);
END_OPERAND(a1);
END_OPERAND(a2);
END_OPERAND(a3);
END_OPERAND(a4);
END_OPERAND(a5);
END_OPERAND(a6);
END_OPERAND(a7);
}

8
ctbenchmarks/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
build/
debug/
clang/
release/
data/
datam/
srcs/
plots/

168
ctbenchmarks/gen_ct Executable file
View File

@ -0,0 +1,168 @@
#!/bin/bash
rand() {
echo $((RANDOM%($2-$1)+$1))
}
index_expr_rand() {
echo "pfor::ctv<$(rand 0 100)>*i+pfor::ctv<$(rand 0 100)>"
}
index_expr_fixed() {
echo "pfor::ctv<3>*i+pfor::ctv<2>"
}
header() {
cat<<EOF
#include <pfor/pfor.h>
#include <cstdio>
std::size_t pfor::ParallelForParameters::nThreads = 16;
constexpr unsigned n = BUFSIZ;
int main() {
pfor::Index i;
EOF
}
footer() {
cat<<EOF
}
EOF
}
variable() {
i=$1
echo -e "\tint v${i}_[n];\tauto v${i} = pfor::Operand<int*, class TID${i}>{v${i}_};"
}
independent_with() {
index_expr_str=$1; shift
index_expr() {
eval ${index_expr_str}
}
for i in $@; do
echo -ne ",\n\t\tv${i}[$(index_expr)] = v1[$(index_expr)]"
done
}
dependent_with() {
index_expr_str=$1; shift
index_expr() {
eval ${index_expr_str}
}
ii=$1; shift
for i in $@; do
echo -ne ",\n\t\tv${i}[$(index_expr)] = v${ii}[$(index_expr)]"
ii=$i
done
}
####
fixed_count=100
fixed_var_count() {
mode=$1; shift
opening=$1; shift
index_expr_str=$1; shift
header
for i in $(seq ${fixed_count}); do
variable "${i}"
done
echo -ne "\t${opening}"
eval "${mode} '${index_expr_str}' $*"
echo -e "\n\t);"
footer
}
fixed_instr_count() {
mode=$1; shift
opening=$1; shift
index_expr_str=$1; shift
var_count=$1
[ "${mode}" = 'dependent_with' ] && vars='1 ' || vars=
ntimes=$(((fixed_count+(var_count-1)-1)/(var_count-1) - 1))
vars_last="${vars}$(seq -s' ' 2 $((fixed_count-ntimes*(var_count-1) + 1)))"
vars="${vars}$(seq -s' ' 2 ${var_count})"
header
for i in $(seq ${var_count}); do
variable "${i}"
done
echo -ne "\t${opening}"
for i in $(seq ${ntimes}); do
eval "${mode} '${index_expr_str}' ${vars}"
done
eval "${mode} '${index_expr_str}' ${vars_last}"
echo -e "\n\t);"
footer
}
fixed_instr_var_count() {
mode=$1; shift
opening=$1; shift
index_expr_str=$1; shift
loop_count=$1
[ "${mode}" = 'dependent_with' ] && first_=1 || first_=2
[ "${mode}" = 'dependent_with' ] && offset=0 || offset=-1
instr_count=$((fixed_count/loop_count))
remainder=$((fixed_count - instr_count*loop_count))
header
for i in $(seq ${fixed_count}); do
variable "${i}"
done
first=${first_}
for i in $(seq $((loop_count))); do
n=$((instr_count + ! ! remainder))
last=$((first + n + offset))
if [ ${last} -gt ${fixed_count} ]; then
first=${first_}
last=$((first + n + offset))
fi
echo -ne "\t${opening}"
eval "${mode} '${index_expr_str}' $(seq -s' ' ${first} ${last})"
echo -e "\n\t);"
first=$((last+1))
remainder=$((remainder > 0 ? remainder-1 : 0))
done
footer
}
####
outdir=srcs
opening='pfor::parallelFor<pfor::ForLoopThread>(pfor::RangeCT<0,2>{n}'
for count in $(echo 5 $(seq 10 10 100)); do
fixed_var_count>"${outdir}/main_fixedv_indep_randi_${count}.cpp" independent_with "${opening}" 'index_expr_rand' $(seq 2 ${count})
fixed_var_count>"${outdir}/main_fixedv_dep_randi_${count}.cpp" dependent_with "${opening}" 'index_expr_rand' $(seq ${count})
fixed_var_count>"${outdir}/main_fixedv_indep_fixedi_${count}.cpp" independent_with "${opening}" 'index_expr_fixed' $(seq 2 ${count})
fixed_var_count>"${outdir}/main_fixedv_dep_fixedi_${count}.cpp" dependent_with "${opening}" 'index_expr_fixed' $(seq ${count})
# fixed_instr_count>"${outdir}/main_fixedi_indep_randi_${count}.cpp" independent_with "${opening}" 'index_expr_rand' "${count}"
# fixed_instr_count>"${outdir}/main_fixedi_dep_randi_${count}.cpp" dependent_with "${opening}" 'index_expr_rand' "${count}"
# fixed_instr_count>"${outdir}/main_fixedi_indep_fixedi_${count}.cpp" independent_with "${opening}" 'index_expr_fixed' "${count}"
# fixed_instr_count>"${outdir}/main_fixedi_dep_fixedi_${count}.cpp" dependent_with "${opening}" 'index_expr_fixed' "${count}"
fixed_instr_var_count>"${outdir}/main_fixediv_indep_randi_${count}.cpp" independent_with "${opening}" 'index_expr_rand' "${count}"
fixed_instr_var_count>"${outdir}/main_fixediv_dep_randi_${count}.cpp" dependent_with "${opening}" 'index_expr_rand' "${count}"
fixed_instr_var_count>"${outdir}/main_fixediv_indep_fixedi_${count}.cpp" independent_with "${opening}" 'index_expr_fixed' "${count}"
fixed_instr_var_count>"${outdir}/main_fixediv_dep_fixedi_${count}.cpp" dependent_with "${opening}" 'index_expr_fixed' "${count}"
done

121
ctbenchmarks/plot Executable file
View File

@ -0,0 +1,121 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os, sys
sys.path.append(os.path.abspath(os.path.dirname(os.path.abspath(__file__))+"/../scripts"))
import fileinput
import numpy as np
import matplotlib as mpl
show = len(sys.argv) > 1 and sys.argv[1] == 'show'
if not show:
mpl.use('pgf')
import matplotlib.pyplot as plt
import matplotlib.lines as lines
from common import set_size, config_plt, get_colors, fix_log_rects
config_plt()
def toFloat(s):
return float(s.split(' ')[1].replace(',', '.'))
def loadData(fn):
content = []
with open(fn) as f:
content = f.readlines()
values = {}
for line in content:
n, real, user, sys, _ = [x for x in line.split(':')]
time = toFloat(user) + toFloat(sys)
if not n in values:
values[n] = []
values[n].append(time);
if "5" in values:
values.pop("5")
return values
def figCT(title, xlabel, xticks, output, datasrcs, legendOutside=False, error=False, log=False):
fig = plt.figure()
plt.title(title)
plt.xlabel(xlabel)
plt.ylabel(u"temps (s)")
plt.xticks(xticks)
if log:
plt.yscale('log')
nd = len(datasrcs)
width = 1.5
pos = .5-.5*nd
for f, label in datasrcs:
values = loadData(f)
barcolor, errcolor = get_colors(['dep/fixed', 'indep/fixed', 'dep/rand', 'indep/rand'], label)
for k, a in values.items():
x = int(k)
m = np.mean(a)
s = 2.5758 * np.std(a) / np.sqrt(len(a))
x = x + pos*width
bar = plt.bar(x, m, width=width, color=barcolor, label=label)
if log:
fix_log_rects(bar, 1e-4)
if error:
plt.errorbar(x, m, s, elinewidth=.8, capsize=1, ecolor=errcolor)
label=''
pos = pos + 1
bbox=(1, 1)
if not legendOutside:
bbox=(.38, 1)
plt.legend(bbox_to_anchor=bbox)
fig.set_size_inches(set_size(455.24408, .8))
if not show:
plt.savefig(output, format='pdf', bbox_inches='tight')
return plt
# script
plts = []
plt = figCT(u"", u"nombre de boucles", [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],
"plots/fixediv.pdf", [
['data/ct_fixediv_dep_fixedi', 'dep/fixed'],
['data/ct_fixediv_indep_fixedi', 'indep/fixed'],
['data/ct_fixediv_dep_randi', 'dep/rand'],
['data/ct_fixediv_indep_randi', 'indep/rand'],
],
legendOutside=True,
error=True
)
plts.append(plt)
plt = figCT(u"", u"nombre d'instructions", [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],
"plots/fixedv.pdf", [
['data/ct_fixedv_dep_fixedi', 'dep/fixed'],
['data/ct_fixedv_indep_fixedi', 'indep/fixed'],
['data/ct_fixedv_dep_randi', 'dep/rand'],
['data/ct_fixedv_indep_randi', 'indep/rand'],
],
error=True,
log=True
)
plts.append(plt)
if show:
for plt in plts:
plt.show()

15
ctbenchmarks/run_ct Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
repetitions=$1; shift
cxx=g++
for mode in $*; do
:>"data/ct_${mode}"
for f in $(ls srcs|grep -E "^main_${mode}_[0-9]+.cpp"); do
n=$(echo ${f}|cut -d'_' -f5|cut -d'.' -f1)
for i in $(seq ${repetitions}); do
echo>>"data/ct_${mode}" "${n}:$( (time -p ${cxx} -O2 -pthread -I../src -o build/null "srcs/${f}") 2>&1|tr '\n' ':')"
done
done
done

76
examples/basic.cpp Normal file
View File

@ -0,0 +1,76 @@
#include <algorithm>
#include <cmath>
#include <iostream>
#include <iterator>
#include <pfor/pfor.h>
#include <pfor/traits.h>
std::size_t pfor::ParallelForParameters::nThreads = 16;
constexpr long n = 16;
template<std::size_t v>
constexpr auto _ = pfor::ctv<v>;
#define OPERAND(T, ID) \
T ID##_; \
auto ID = pfor::Operand<T, class TID##ID>{ID##_}
template<typename T, std::size_t n>
void printArray(std::array<T, n> const& array) {
std::copy(std::begin(array), std::end(array), std::ostream_iterator<T>(std::cout, " "));
std::cout << std::endl;
}
int main() {
using TypeA = std::array<int, n+1>; OPERAND(TypeA, a);
using TypeB = std::array<int, 2*n+1>; OPERAND(TypeB, b);
using Type = std::array<int, n>; OPERAND(Type, c); OPERAND(Type, d);
std::generate_n(std::begin(a_), a_.size(), [i=0]() mutable { return i++; });
std::generate_n(std::begin(b_), b_.size(), [i=0]() mutable { return n-i++; });
std::generate_n(std::begin(c_), c_.size(), [i=0]() mutable { return 1+i++%3; });
std::generate_n(std::begin(d_), d_.size(), [i=0]() mutable { return -i++; });
pfor::Index i;
{
auto e = a[_<2>*i+_<1>] = a[_<2>*i];
std::cout << "Is {a[2*i+1] = a[2*i]} parallelizable? " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl;
}
{
auto e = a[i*i] = a[i*i]+1;
std::cout << "Is {a[i*i] = a[i*i]+1} parallelizable? " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl;
}
{
auto e = a[injective(i*i)] = a[injective(i*i)]+1;
std::cout << "Is {a[injective(i*i)] = a[injective(i*i)]+1} parallelizable? " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl;
}
{
auto e = a[i+_<1>] = a[i];
std::cout << "Is {a[i+1] = a[i]}(step=1) parallelizable? " << std::boolalpha << parallelTest(pfor::RangeCT<0,1>{0}, e) << std::endl;
std::cout << "Is {a[i+1] = a[i]}(step=2) parallelizable? " << std::boolalpha << parallelTest(pfor::RangeCT<0,2>{0}, e) << std::endl;
}
pfor::parallelFor<pfor::ForLoopThread>(pfor::Range{0, n},
d[i] = (xpr(i)+1)*a[i+_<1>],
b[_<2>*i+_<1>] = b[_<2>*i]
);
pfor::parallelFor<pfor::ForLoopThread>(pfor::Range{0, static_cast<pfor::Range::ValueType>(std::sqrt(n))},
c[injective(i*i)] = c[injective(i*i)] + i
);
pfor::parallelFor<pfor::ForLoopThread>(pfor::RangeCT<0,2>{n},
a[i+_<1>] = a[i]
);
printArray(a_);
printArray(b_);
printArray(c_);
printArray(d_);
}

58
examples/gen.cpp Normal file
View File

@ -0,0 +1,58 @@
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <pfor/pfor.h>
#define K 1
std::size_t pfor::ParallelForParameters::nThreads{1};
template<std::size_t n>
constexpr auto _ = pfor::ctv<n>;
using T = int;
#define OPERAND(Type, name, size, filler) \
Type * name##_ = new Type[size]; \
{ \
std::size_t i = 0; \
std::generate_n(name##_, size, [&i]{ return filler; }); \
} \
auto name = pfor::Operand<Type*, class ID##name>(name##_);
void printer(std::size_t) {}
template<typename T, typename... Ts>
void printer(std::size_t n, T &&array, Ts&&... arrays) {
for(std::size_t i = 0; i < n; ++i)
std::clog << std::forward<T>(array)[i] << ", ";
std::clog << std::endl;
printer(n, std::forward<Ts>(arrays)...);
}
int main() {
std::size_t const N = 1000000;
OPERAND(T, a0, N, i++);
OPERAND(T, a1, N, i++);
OPERAND(T, a2, N, i++);
OPERAND(T, a3, N, i++);
OPERAND(T, a4, N, i++);
OPERAND(T, a5, N, i++);
OPERAND(T, a6, N, i++);
OPERAND(T, a7, N, i++);
for(std::size_t k = 0; k < K; ++k) {
parallelFor(pfor::Range{0, N-1}, [&](pfor::Index i) {
return
a0[i] = a0[i+_<1>] + a1[i] * a2[i],
a1[i] = a1[i+_<1>] + a2[i] * a3[i],
a2[i] = a2[i+_<1>] + a3[i] * a4[i],
a5[i] = a5[i+_<1>] + a6[i] * a7[i];
});
}
printer(N, a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_);
}

74
examples/operand.cpp Normal file
View File

@ -0,0 +1,74 @@
#include <algorithm>
#include <iostream>
#include <iterator>
#include <pfor/pfor.h>
#define N 10
#define DELAY 10'000'000
#define WAIT(DELAY) \
for(std::size_t i = 0; i < DELAY; ++i)
template<std::size_t n>
constexpr auto _ = pfor::ctv<n>;
std::size_t pfor::ParallelForParameters::nThreads = 4;
/* slow operator+ */
template<typename T = int>
class Foo {
T data;
public:
Foo() = default;
Foo(T const&data): data{data} {}
Foo &operator=(T const&data) {
WAIT(DELAY);
this->data = data;
return *this;
}
Foo operator+(Foo const&o) {
WAIT(DELAY);
return Foo{data+o.data};
}
operator T() const { return data; }
};
int main() {
Foo<> a[N+1], b[N], c[N], d[N];
int t[N];
{ int i = 0; std::generate_n(std::begin(a), N+1, [&i]{ return N-(i++); }); }
{ int i = 0; std::generate_n(std::begin(b), N, [&i]{ return i++; }); }
{ std::generate_n(std::begin(c), N, []{ return 250; }); }
{ int i = 0; std::generate_n(std::begin(d), N, [&i]{ return i++&1; }); }
pfor::parallelFor<pfor::ForLoopOMP>(pfor::Range{0, N-1},
[
a=pfor::Operand<Foo<>*, class IDa>(a),
b=pfor::Operand<Foo<>*, class IDb>(b),
c=pfor::Operand<Foo<>*, class IDc>(c),
d=pfor::Operand<Foo<>*, class IDd>(d),
t=pfor::expr::Constant<int*>(t)
] (auto i) mutable {
return (
a[i] = b[i]+a[i+_<1>],
c[i] = c[i]+c[i],
b[i] = 3
);
}
);
std::copy(a, a+N, std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
std::copy(b, b+N, std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
std::copy(c, c+N, std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
std::copy(d, d+N, std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
}

47
examples/properties.cpp Normal file
View File

@ -0,0 +1,47 @@
#include <iostream>
#include <pfor/pfor.h>
#include <pfor/traits.h>
int main() {
std::array<int, 1> a;
pfor::Operand<std::array<int, 1>, void> o{a};
pfor::Index i;
auto strinc = strictinc(i*i);
auto strdec = strictdec(i*i);
{
auto e = o[strinc] = o[strinc]+1;
std::cout << "strictly inc: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl;
}
{
auto ii = strinc + strinc;
auto e = o[ii] = o[ii]+1;
std::cout << "strictly inc + strictly inc: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl;
}
{
auto ii = strinc + strdec;
auto e = o[ii] = o[ii]+1;
std::cout << "strictly inc + strictly dec: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl;
}
{
auto ii = strdec + strinc;
auto e = o[ii] = o[ii]+1;
std::cout << "strictly dec + strictly inc: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl;
}
{
auto ii = strdec + strdec;
auto e = o[ii] = o[ii]+1;
std::cout << "strictly dec + strictly dec: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl;
}
{
auto ii = strinc - strdec;
auto e = o[ii] = o[ii]+1;
std::cout << "strictly inc - strictly dec: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl;
}
{
auto ii = strdec - strinc;
auto e = o[ii] = o[ii]+1;
std::cout << "strictly dec - strictly inc: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl;
}
}

52
examples/seq.cpp Normal file
View File

@ -0,0 +1,52 @@
#include <algorithm>
#include <iostream>
#include <iterator>
#include <pfor/pfor.h>
#define K 1
std::size_t pfor::ParallelForParameters::nThreads{1};
using T = int;
#define OPERAND(Type, name, n, size, filler) \
Type * name##n##_ = new Type[size]; \
{ \
std::size_t i = 0; \
std::generate_n(name##n##_, size, [&i]{ return filler; }); \
}
void printer(std::size_t) {}
template<typename T, typename... Ts>
void printer(std::size_t n, T &&array, Ts&&... arrays) {
for(std::size_t i = 0; i < n; ++i)
std::clog << std::forward<T>(array)[i] << ", ";
std::clog << std::endl;
printer(n, std::forward<Ts>(arrays)...);
}
int main() {
std::size_t const N = 1000000;
OPERAND(T, a, 0, N, i++);
OPERAND(T, a, 1, N, i++);
OPERAND(T, a, 2, N, i++);
OPERAND(T, a, 3, N, i++);
OPERAND(T, a, 4, N, i++);
OPERAND(T, a, 5, N, i++);
OPERAND(T, a, 6, N, i++);
OPERAND(T, a, 7, N, i++);
for(std::size_t k = 0; k < K; ++k) {
for(std::size_t i = 0; i < N-1; ++i) {
a0_[i] = a0_[i+1] + a1_[i] * a2_[i];
a1_[i] = a1_[i+1] + a2_[i] * a3_[i];
a2_[i] = a2_[i+1] + a3_[i] * a4_[i];
a5_[i] = a5_[i+1] + a6_[i] * a7_[i];
}
}
printer(N, a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_);
}

27
examples/thesis.cpp Normal file
View File

@ -0,0 +1,27 @@
#include <cstdio>
#include <cmath>
#include <pfor/pfor.h>
std::size_t pfor::ParallelForParameters::nThreads = 16;
constexpr long n = 16;
int main() {
std::array<int, n> a_; pfor::Operand<decltype(a_), class IDa> a{a_};
std::array<int, n> b_; pfor::Operand<decltype(b_), class IDb> b{b_};
std::array<int, n> c_; pfor::Operand<decltype(c_), class IDc> c{c_};
std::array<int, n> d_; pfor::Operand<decltype(d_), class IDd> d{d_};
std::array<int, n> e_; pfor::Operand<decltype(e_), class IDe> e{e_};
std::array<int, n> f_; pfor::Operand<decltype(f_), class IDf> f{f_};
auto pow = pfor::makeOperator<float(&)(float, float)>(std::pow);
pfor::Index i;
pfor::parallelFor<pfor::ForLoopThread>(pfor::Range{0, static_cast<decltype(+n)>(std::sqrt(n))},
a[i] = a[i] * b[i],
c[i] = c[i+pfor::ctv<1>] - d[i],
b[i] = b[i] + i,
d[i] = pow(c[i], e[i]),
f[injective(i*i)] = 2 * f[injective(i*i)]
);
}

48
examples/types.cpp Normal file
View File

@ -0,0 +1,48 @@
#include <algorithm>
#include <iostream>
#include <iterator>
#include <pfor/pfor.h>
#define N 10
template<typename..., typename... Ts>
void printTypes(Ts...) {
std::puts(__PRETTY_FUNCTION__);
}
int main() {
int dummy[N+1];
auto a = pfor::Operand<int*, class IDa>(dummy);
auto b = pfor::Operand<int*, class IDb>(dummy);
auto c = pfor::Operand<int*, class IDc>(dummy);
auto d = pfor::Operand<int*, class IDd>(dummy);
auto e = pfor::Operand<int*, class IDe>(dummy);
auto f = pfor::Operand<int*, class IDf>(dummy);
pfor::Index i;
auto expr =
(
a[i] = a[i] * b[i],
c[i] = c[i+pfor::ctv<1>] + d[i],
b[i] = b[i] + 1,
d[i] = c[i]^e[i],
f[i] = 2 * f[i]
);
using CommaSplittedExpr = pfor::expr::SplitComma<decltype(expr)>;
using ExprInfo = pfor::expr::ExpressionInfo<CommaSplittedExpr>;
using Clusters = typename pfor::impl::ClustersGenImpl<pfor::Pack<>, ExprInfo>::type;
using ClustersIds = pfor::ClustersExpressionIds<Clusters>;
using Type = pfor::PackSort<pfor::ComparatorUIntPack, ClustersIds>;
printTypes(expr);
std::puts("--");
printTypes<CommaSplittedExpr>();
std::puts("--");
printTypes<ExprInfo>();
std::puts("--");
printTypes<Clusters>();
std::puts("--");
printTypes<Type>();
}

33
examples/unrolling.cpp Normal file
View File

@ -0,0 +1,33 @@
#include <algorithm>
#include <iostream>
#include <iterator>
#include <pfor/pfor.h>
#include <pfor/traits.h>
constexpr long n = 10;
#define OPERAND(T, ID) \
T ID##_; \
auto ID = pfor::Operand<T, class TID##ID>{ID##_}
template<typename T, std::size_t n>
void printArray(std::array<T, n> const& array) {
std::copy(std::begin(array), std::end(array), std::ostream_iterator<T>(std::cout, " "));
std::cout << std::endl;
}
int main() {
using Type = std::array<int, n>;
OPERAND(Type, a);
std::generate_n(std::begin(a_), n, [i=1]() mutable { return i++; });
pfor::Index i;
pfor::parallelFor<pfor::ForLoopUnrolling<4>::template Template>(pfor::Range{0, n},
a[i] = 3*a[i]
);
printArray(a_);
}

56
examples/userops.cpp Normal file
View File

@ -0,0 +1,56 @@
#include <algorithm>
#include <cmath>
#include <iostream>
#include <iterator>
#include <pfor/pfor.h>
constexpr long n = 10;
template<std::size_t n>
constexpr auto _ = pfor::ctv<n>;
#define OPERAND(T, ID) \
T ID##_; \
auto ID = pfor::Operand<T, class TID##ID>{ID##_}
template<typename T, std::size_t n>
void printArray(std::array<T, n> const& array) {
std::copy(std::begin(array), std::end(array), std::ostream_iterator<T>(std::cout, " "));
std::cout << std::endl;
}
inline static long long factorial(long long n) {
long long r = 1;
while(n > 1) r *= n--;
return r;
}
std::size_t pfor::ParallelForParameters::nThreads = 4;
int main() {
using Type = std::array<int, n>;
OPERAND(Type, a); OPERAND(Type, b); OPERAND(Type, c); OPERAND(Type, d);
std::generate_n(std::begin(a_), n, [i=0]() mutable { return i++; });
std::generate_n(std::begin(b_), n, [i=0]() mutable { return n-i++; });
std::generate_n(std::begin(c_), n, [i=0]() mutable { return i++%3; });
std::generate_n(std::begin(d_), n, [i=0]() mutable { return -i++; });
pfor::Index i;
auto add3 = pfor::makeOperator([](auto a, auto b, auto c) { return a+b+c; });
auto pow = pfor::makeOperator<float(&)(float, float)>(std::pow);
auto factorial = pfor::makeOperator(::factorial);
pfor::parallelFor<pfor::ForLoopThread>(pfor::Range{0, n},
a[i] = add3(a[i], c[i], c[i]),
b[i] = pow(b[i], c[i]),
d[i] = pow(factorial(-d[i]/2), xpr(i) % 4 + 1)
);
printArray(a_);
printArray(b_);
printArray(c_);
printArray(d_);
}

11606
inc/catch.hpp Normal file

File diff suppressed because it is too large Load Diff

1
results/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
plots/

View File

@ -0,0 +1,200 @@
100:real 6.55:user 5.98:sys 0.47:
100:real 6.77:user 6.05:sys 0.65:
100:real 6.50:user 5.98:sys 0.45:
100:real 6.44:user 5.93:sys 0.45:
100:real 6.73:user 6.05:sys 0.59:
100:real 6.52:user 5.97:sys 0.49:
100:real 6.49:user 5.95:sys 0.49:
100:real 6.69:user 6.06:sys 0.56:
100:real 6.39:user 5.78:sys 0.52:
100:real 6.47:user 5.93:sys 0.48:
100:real 6.54:user 6.01:sys 0.46:
100:real 6.42:user 5.90:sys 0.47:
100:real 6.46:user 5.91:sys 0.46:
100:real 6.39:user 5.89:sys 0.45:
100:real 6.48:user 5.95:sys 0.47:
100:real 6.49:user 5.95:sys 0.48:
100:real 6.51:user 5.92:sys 0.51:
100:real 6.49:user 5.98:sys 0.45:
100:real 6.49:user 5.96:sys 0.47:
100:real 6.47:user 5.94:sys 0.47:
10:real 7.84:user 7.15:sys 0.59:
10:real 7.79:user 7.07:sys 0.67:
10:real 7.87:user 7.16:sys 0.66:
10:real 7.83:user 7.14:sys 0.64:
10:real 7.85:user 7.16:sys 0.62:
10:real 7.80:user 7.13:sys 0.62:
10:real 7.84:user 7.12:sys 0.66:
10:real 7.80:user 7.09:sys 0.64:
10:real 7.96:user 7.19:sys 0.67:
10:real 7.87:user 7.14:sys 0.66:
10:real 7.81:user 7.14:sys 0.62:
10:real 7.63:user 6.99:sys 0.59:
10:real 7.90:user 7.16:sys 0.66:
10:real 8.57:user 7.67:sys 0.84:
10:real 7.82:user 7.18:sys 0.58:
10:real 7.87:user 7.16:sys 0.63:
10:real 7.83:user 7.16:sys 0.61:
10:real 7.82:user 7.14:sys 0.62:
10:real 7.85:user 7.16:sys 0.63:
10:real 7.80:user 7.08:sys 0.65:
20:real 8.11:user 7.32:sys 0.73:
20:real 7.94:user 7.20:sys 0.68:
20:real 7.35:user 6.70:sys 0.58:
20:real 7.36:user 6.70:sys 0.57:
20:real 7.31:user 6.68:sys 0.57:
20:real 7.32:user 6.69:sys 0.57:
20:real 7.29:user 6.68:sys 0.56:
20:real 7.33:user 6.68:sys 0.57:
20:real 7.29:user 6.64:sys 0.59:
20:real 7.31:user 6.71:sys 0.54:
20:real 7.28:user 6.66:sys 0.56:
20:real 7.33:user 6.69:sys 0.56:
20:real 7.28:user 6.68:sys 0.54:
20:real 7.31:user 6.70:sys 0.55:
20:real 7.31:user 6.70:sys 0.55:
20:real 7.33:user 6.70:sys 0.55:
20:real 7.31:user 6.68:sys 0.58:
20:real 7.40:user 6.74:sys 0.59:
20:real 7.30:user 6.65:sys 0.59:
20:real 7.26:user 6.61:sys 0.56:
30:real 8.65:user 7.89:sys 0.69:
30:real 8.81:user 7.91:sys 0.82:
30:real 8.71:user 7.87:sys 0.74:
30:real 8.70:user 7.96:sys 0.67:
30:real 8.69:user 7.92:sys 0.69:
30:real 8.79:user 8.00:sys 0.71:
30:real 8.74:user 7.82:sys 0.85:
30:real 8.87:user 7.75:sys 1.05:
30:real 9.01:user 8.15:sys 0.76:
30:real 8.78:user 7.88:sys 0.83:
30:real 9.11:user 8.19:sys 0.85:
30:real 8.70:user 7.91:sys 0.70:
30:real 8.68:user 7.92:sys 0.69:
30:real 8.56:user 7.86:sys 0.64:
30:real 8.63:user 7.81:sys 0.71:
30:real 8.43:user 7.72:sys 0.66:
30:real 8.66:user 7.90:sys 0.70:
30:real 8.68:user 7.90:sys 0.69:
30:real 8.41:user 7.68:sys 0.67:
30:real 8.61:user 7.87:sys 0.68:
40:real 10.21:user 9.38:sys 0.75:
40:real 10.12:user 9.30:sys 0.76:
40:real 10.15:user 9.33:sys 0.75:
40:real 9.90:user 9.20:sys 0.60:
40:real 10.09:user 9.29:sys 0.74:
40:real 10.23:user 9.34:sys 0.83:
40:real 10.26:user 9.39:sys 0.77:
40:real 10.44:user 9.57:sys 0.79:
40:real 10.19:user 9.33:sys 0.78:
40:real 10.22:user 9.36:sys 0.76:
40:real 10.31:user 9.44:sys 0.79:
40:real 10.49:user 9.58:sys 0.83:
40:real 10.61:user 9.62:sys 0.90:
40:real 10.83:user 9.83:sys 0.92:
40:real 10.75:user 9.61:sys 1.06:
40:real 10.71:user 9.63:sys 0.97:
40:real 11.78:user 10.16:sys 1.55:
40:real 10.87:user 9.67:sys 1.13:
40:real 11.21:user 10.01:sys 1.08:
40:real 10.25:user 9.44:sys 0.74:
50:real 7.87:user 7.25:sys 0.56:
50:real 8.21:user 7.21:sys 0.90:
50:real 7.65:user 6.98:sys 0.60:
50:real 7.84:user 7.17:sys 0.60:
50:real 7.82:user 7.20:sys 0.57:
50:real 7.91:user 7.24:sys 0.58:
50:real 7.84:user 7.16:sys 0.62:
50:real 7.74:user 7.12:sys 0.56:
50:real 7.80:user 7.18:sys 0.57:
50:real 7.88:user 7.20:sys 0.60:
50:real 7.75:user 7.11:sys 0.58:
50:real 7.79:user 7.16:sys 0.57:
50:real 7.79:user 7.14:sys 0.59:
50:real 7.62:user 6.92:sys 0.62:
50:real 7.58:user 6.98:sys 0.55:
50:real 7.84:user 7.21:sys 0.57:
50:real 7.81:user 7.16:sys 0.59:
50:real 7.77:user 7.03:sys 0.63:
50:real 7.85:user 7.21:sys 0.59:
50:real 7.95:user 7.15:sys 0.73:
60:real 9.43:user 8.68:sys 0.67:
60:real 9.72:user 8.82:sys 0.79:
60:real 9.76:user 8.83:sys 0.85:
60:real 9.58:user 8.71:sys 0.80:
60:real 9.63:user 8.67:sys 0.86:
60:real 9.51:user 8.54:sys 0.90:
60:real 9.48:user 8.64:sys 0.77:
60:real 9.55:user 8.71:sys 0.74:
60:real 9.46:user 8.68:sys 0.72:
60:real 9.48:user 8.71:sys 0.70:
60:real 9.51:user 8.69:sys 0.72:
60:real 9.47:user 8.70:sys 0.69:
60:real 9.27:user 8.52:sys 0.68:
60:real 9.36:user 8.62:sys 0.66:
60:real 9.41:user 8.66:sys 0.70:
60:real 9.42:user 8.66:sys 0.70:
60:real 9.43:user 8.63:sys 0.71:
60:real 9.35:user 8.61:sys 0.68:
60:real 9.38:user 8.66:sys 0.66:
60:real 9.39:user 8.66:sys 0.65:
70:real 12.68:user 11.66:sys 0.96:
70:real 11.41:user 10.58:sys 0.77:
70:real 11.48:user 10.58:sys 0.81:
70:real 11.73:user 10.79:sys 0.86:
70:real 11.82:user 10.90:sys 0.84:
70:real 11.91:user 10.84:sys 0.98:
70:real 12.07:user 10.97:sys 1.02:
70:real 11.21:user 10.40:sys 0.72:
70:real 11.51:user 10.65:sys 0.80:
70:real 11.44:user 10.65:sys 0.72:
70:real 12.05:user 11.05:sys 0.91:
70:real 11.43:user 10.59:sys 0.78:
70:real 12.10:user 11.13:sys 0.91:
70:real 11.41:user 10.59:sys 0.73:
70:real 11.40:user 10.58:sys 0.75:
70:real 11.42:user 10.62:sys 0.73:
70:real 11.88:user 10.89:sys 0.88:
70:real 11.80:user 10.79:sys 0.94:
70:real 11.76:user 10.84:sys 0.84:
70:real 11.55:user 10.53:sys 0.90:
80:real 9.88:user 9.12:sys 0.69:
80:real 10.17:user 9.35:sys 0.74:
80:real 10.03:user 9.18:sys 0.74:
80:real 9.96:user 9.16:sys 0.72:
80:real 9.94:user 9.16:sys 0.71:
80:real 9.93:user 9.15:sys 0.68:
80:real 9.95:user 9.21:sys 0.68:
80:real 9.99:user 9.18:sys 0.73:
80:real 10.04:user 9.19:sys 0.75:
80:real 9.90:user 9.12:sys 0.71:
80:real 10.05:user 9.25:sys 0.73:
80:real 9.90:user 9.06:sys 0.74:
80:real 9.93:user 9.16:sys 0.70:
80:real 9.90:user 9.18:sys 0.66:
80:real 9.87:user 9.06:sys 0.73:
80:real 9.92:user 9.11:sys 0.74:
80:real 9.91:user 9.14:sys 0.71:
80:real 9.95:user 9.21:sys 0.65:
80:real 9.91:user 9.17:sys 0.68:
80:real 9.89:user 9.15:sys 0.68:
90:real 8.56:user 7.88:sys 0.59:
90:real 8.50:user 7.85:sys 0.59:
90:real 8.47:user 7.82:sys 0.60:
90:real 8.55:user 7.84:sys 0.62:
90:real 8.43:user 7.77:sys 0.59:
90:real 8.55:user 7.92:sys 0.56:
90:real 8.54:user 7.85:sys 0.60:
90:real 8.71:user 7.93:sys 0.70:
90:real 8.88:user 7.89:sys 0.92:
90:real 8.95:user 8.19:sys 0.65:
90:real 8.87:user 8.09:sys 0.70:
90:real 8.64:user 7.93:sys 0.64:
90:real 8.62:user 7.92:sys 0.60:
90:real 8.55:user 7.85:sys 0.63:
90:real 8.45:user 7.80:sys 0.59:
90:real 8.83:user 7.96:sys 0.76:
90:real 9.03:user 8.06:sys 0.89:
90:real 8.84:user 8.11:sys 0.66:
90:real 8.92:user 8.05:sys 0.77:
90:real 8.60:user 7.92:sys 0.60:

View File

@ -0,0 +1,200 @@
100:real 14.13:user 13.23:sys 0.83:
100:real 16.08:user 14.61:sys 1.34:
100:real 15.54:user 14.21:sys 1.25:
100:real 14.69:user 13.48:sys 1.08:
100:real 14.88:user 13.77:sys 1.03:
100:real 14.84:user 13.44:sys 1.28:
100:real 15.04:user 13.95:sys 1.01:
100:real 14.73:user 13.35:sys 1.26:
100:real 14.95:user 13.86:sys 1.02:
100:real 16.18:user 14.38:sys 1.67:
100:real 15.79:user 14.53:sys 1.18:
100:real 14.16:user 13.23:sys 0.84:
100:real 14.17:user 13.22:sys 0.88:
100:real 14.33:user 13.34:sys 0.90:
100:real 14.24:user 13.35:sys 0.83:
100:real 13.88:user 12.95:sys 0.84:
100:real 14.20:user 13.32:sys 0.82:
100:real 14.23:user 13.31:sys 0.83:
100:real 14.23:user 13.15:sys 1.00:
100:real 14.86:user 13.68:sys 1.07:
10:real 10.93:user 10.07:sys 0.79:
10:real 11.09:user 10.09:sys 0.89:
10:real 12.03:user 10.83:sys 1.13:
10:real 11.21:user 10.25:sys 0.90:
10:real 11.59:user 10.54:sys 0.95:
10:real 11.77:user 10.58:sys 1.11:
10:real 11.81:user 10.73:sys 1.01:
10:real 11.37:user 10.18:sys 1.09:
10:real 10.99:user 10.16:sys 0.78:
10:real 11.09:user 10.19:sys 0.80:
10:real 11.03:user 10.20:sys 0.75:
10:real 11.01:user 10.13:sys 0.82:
10:real 10.99:user 10.17:sys 0.76:
10:real 11.08:user 10.21:sys 0.80:
10:real 11.00:user 10.12:sys 0.82:
10:real 10.99:user 10.18:sys 0.75:
10:real 12.39:user 11.10:sys 1.19:
10:real 11.23:user 10.25:sys 0.91:
10:real 11.26:user 10.29:sys 0.89:
10:real 12.38:user 11.20:sys 1.08:
20:real 9.86:user 9.06:sys 0.73:
20:real 10.67:user 9.60:sys 1.01:
20:real 10.75:user 9.71:sys 0.95:
20:real 10.68:user 9.73:sys 0.87:
20:real 10.93:user 9.83:sys 1.02:
20:real 10.41:user 9.20:sys 1.12:
20:real 10.38:user 9.28:sys 1.03:
20:real 10.20:user 9.16:sys 0.97:
20:real 10.10:user 9.14:sys 0.87:
20:real 10.06:user 9.15:sys 0.84:
20:real 10.00:user 9.11:sys 0.80:
20:real 9.99:user 9.14:sys 0.76:
20:real 9.90:user 9.03:sys 0.79:
20:real 10.10:user 9.19:sys 0.84:
20:real 10.06:user 9.14:sys 0.82:
20:real 9.87:user 9.12:sys 0.68:
20:real 9.87:user 9.02:sys 0.78:
20:real 10.11:user 9.11:sys 0.90:
20:real 10.06:user 9.10:sys 0.89:
20:real 10.07:user 9.12:sys 0.87:
30:real 9.61:user 8.79:sys 0.73:
30:real 9.75:user 8.87:sys 0.81:
30:real 10.17:user 9.07:sys 1.03:
30:real 9.79:user 8.93:sys 0.76:
30:real 10.18:user 9.08:sys 1.03:
30:real 10.07:user 8.99:sys 1.01:
30:real 10.10:user 9.06:sys 0.95:
30:real 9.86:user 9.00:sys 0.79:
30:real 10.12:user 9.04:sys 1.00:
30:real 10.11:user 9.08:sys 0.93:
30:real 9.75:user 8.99:sys 0.69:
30:real 10.13:user 9.07:sys 0.99:
30:real 10.14:user 9.10:sys 0.94:
30:real 10.07:user 9.13:sys 0.88:
30:real 9.99:user 9.02:sys 0.89:
30:real 10.04:user 9.03:sys 0.91:
30:real 9.99:user 9.06:sys 0.86:
30:real 9.74:user 8.93:sys 0.74:
30:real 9.98:user 8.87:sys 1.01:
30:real 9.94:user 8.89:sys 0.98:
40:real 9.81:user 8.96:sys 0.78:
40:real 9.86:user 9.05:sys 0.71:
40:real 10.18:user 9.33:sys 0.79:
40:real 10.00:user 8.91:sys 1.01:
40:real 10.20:user 9.05:sys 1.05:
40:real 10.03:user 8.95:sys 1.01:
40:real 10.00:user 9.01:sys 0.92:
40:real 10.08:user 8.97:sys 1.01:
40:real 10.03:user 9.03:sys 0.92:
40:real 10.01:user 9.01:sys 0.93:
40:real 10.01:user 8.98:sys 0.93:
40:real 9.78:user 8.93:sys 0.78:
40:real 10.09:user 9.02:sys 1.00:
40:real 10.02:user 8.92:sys 1.00:
40:real 10.03:user 8.97:sys 0.98:
40:real 10.05:user 9.00:sys 0.97:
40:real 9.96:user 8.86:sys 1.01:
40:real 9.97:user 8.94:sys 0.96:
40:real 9.94:user 8.88:sys 0.98:
40:real 10.03:user 8.88:sys 1.04:
50:real 10.79:user 9.70:sys 1.02:
50:real 10.89:user 9.91:sys 0.89:
50:real 10.82:user 9.85:sys 0.87:
50:real 11.05:user 10.00:sys 0.97:
50:real 10.76:user 9.80:sys 0.88:
50:real 11.76:user 10.46:sys 1.20:
50:real 11.04:user 10.00:sys 0.96:
50:real 11.80:user 10.69:sys 1.05:
50:real 11.22:user 10.09:sys 1.03:
50:real 10.68:user 9.60:sys 1.01:
50:real 10.38:user 9.52:sys 0.79:
50:real 10.78:user 9.79:sys 0.89:
50:real 10.81:user 9.83:sys 0.90:
50:real 10.69:user 9.74:sys 0.87:
50:real 10.78:user 9.82:sys 0.87:
50:real 10.82:user 9.84:sys 0.90:
50:real 12.53:user 10.81:sys 1.65:
50:real 11.23:user 10.15:sys 0.99:
50:real 11.30:user 10.20:sys 1.02:
50:real 10.73:user 9.64:sys 1.02:
60:real 11.30:user 10.34:sys 0.84:
60:real 11.76:user 10.73:sys 0.96:
60:real 11.62:user 10.65:sys 0.90:
60:real 12.02:user 10.96:sys 0.95:
60:real 12.22:user 11.05:sys 1.09:
60:real 11.49:user 10.63:sys 0.77:
60:real 11.52:user 10.59:sys 0.87:
60:real 12.73:user 11.64:sys 1.03:
60:real 11.56:user 10.67:sys 0.80:
60:real 11.54:user 10.64:sys 0.84:
60:real 11.49:user 10.61:sys 0.83:
60:real 11.55:user 10.67:sys 0.81:
60:real 11.50:user 10.63:sys 0.81:
60:real 11.50:user 10.59:sys 0.85:
60:real 12.14:user 11.07:sys 0.98:
60:real 12.30:user 11.08:sys 1.15:
60:real 12.33:user 10.99:sys 1.23:
60:real 11.49:user 10.60:sys 0.83:
60:real 11.50:user 10.65:sys 0.79:
60:real 11.55:user 10.64:sys 0.82:
70:real 12.00:user 11.10:sys 0.83:
70:real 12.00:user 11.11:sys 0.82:
70:real 12.03:user 11.08:sys 0.86:
70:real 13.33:user 12.07:sys 1.19:
70:real 13.29:user 11.97:sys 1.22:
70:real 12.95:user 11.78:sys 1.08:
70:real 13.29:user 11.95:sys 1.23:
70:real 12.66:user 11.56:sys 1.02:
70:real 12.84:user 11.47:sys 1.28:
70:real 12.31:user 11.17:sys 1.05:
70:real 12.21:user 11.13:sys 0.98:
70:real 13.12:user 11.95:sys 1.10:
70:real 12.80:user 11.69:sys 1.01:
70:real 11.96:user 11.08:sys 0.80:
70:real 12.23:user 11.14:sys 0.98:
70:real 12.64:user 11.56:sys 1.00:
70:real 12.74:user 11.59:sys 1.04:
70:real 12.02:user 11.10:sys 0.84:
70:real 12.12:user 11.05:sys 0.98:
70:real 12.50:user 11.40:sys 1.02:
80:real 12.84:user 11.90:sys 0.84:
80:real 13.07:user 11.76:sys 1.22:
80:real 13.06:user 11.99:sys 0.97:
80:real 13.36:user 12.24:sys 1.04:
80:real 13.28:user 11.97:sys 1.19:
80:real 12.98:user 11.90:sys 1.01:
80:real 13.45:user 12.31:sys 1.02:
80:real 13.50:user 12.27:sys 1.14:
80:real 13.11:user 11.99:sys 1.02:
80:real 13.44:user 12.38:sys 0.98:
80:real 13.52:user 12.24:sys 1.16:
80:real 13.03:user 11.93:sys 1.02:
80:real 13.43:user 12.29:sys 1.03:
80:real 13.57:user 12.28:sys 1.20:
80:real 13.07:user 11.98:sys 0.98:
80:real 13.37:user 12.36:sys 0.93:
80:real 12.87:user 11.82:sys 0.93:
80:real 14.25:user 13.00:sys 1.17:
80:real 13.33:user 12.26:sys 0.97:
80:real 13.49:user 12.17:sys 1.23:
90:real 13.81:user 12.85:sys 0.86:
90:real 15.11:user 13.75:sys 1.28:
90:real 13.81:user 12.84:sys 0.88:
90:real 13.83:user 12.87:sys 0.89:
90:real 13.84:user 12.89:sys 0.86:
90:real 13.76:user 12.85:sys 0.85:
90:real 13.78:user 12.84:sys 0.85:
90:real 13.42:user 12.55:sys 0.80:
90:real 13.79:user 12.86:sys 0.85:
90:real 14.82:user 13.59:sys 1.14:
90:real 15.25:user 13.93:sys 1.22:
90:real 14.75:user 13.53:sys 1.13:
90:real 13.93:user 12.81:sys 1.02:
90:real 15.02:user 13.72:sys 1.23:
90:real 15.09:user 13.81:sys 1.19:
90:real 13.77:user 12.89:sys 0.82:
90:real 14.12:user 13.08:sys 0.95:
90:real 13.46:user 12.56:sys 0.84:
90:real 14.78:user 13.66:sys 1.02:
90:real 13.76:user 12.86:sys 0.83:

View File

@ -0,0 +1,200 @@
100:real 11.14:user 10.24:sys 0.78:
100:real 11.01:user 10.24:sys 0.70:
100:real 11.80:user 10.79:sys 0.95:
100:real 11.99:user 10.94:sys 0.96:
100:real 11.85:user 10.79:sys 1.00:
100:real 10.99:user 10.24:sys 0.69:
100:real 11.43:user 10.38:sys 0.93:
100:real 11.12:user 10.29:sys 0.75:
100:real 11.06:user 10.22:sys 0.76:
100:real 10.99:user 10.14:sys 0.75:
100:real 11.18:user 10.33:sys 0.78:
100:real 11.27:user 10.36:sys 0.82:
100:real 11.67:user 10.68:sys 0.88:
100:real 11.83:user 10.78:sys 0.96:
100:real 10.96:user 10.20:sys 0.68:
100:real 11.18:user 10.27:sys 0.80:
100:real 11.10:user 10.24:sys 0.79:
100:real 11.07:user 10.26:sys 0.72:
100:real 11.18:user 10.26:sys 0.81:
100:real 11.00:user 10.15:sys 0.76:
10:real 7.18:user 6.53:sys 0.59:
10:real 7.28:user 6.62:sys 0.57:
10:real 7.23:user 6.57:sys 0.60:
10:real 7.00:user 6.41:sys 0.53:
10:real 7.22:user 6.58:sys 0.57:
10:real 7.25:user 6.62:sys 0.55:
10:real 7.25:user 6.67:sys 0.51:
10:real 7.22:user 6.61:sys 0.54:
10:real 7.25:user 6.63:sys 0.56:
10:real 7.76:user 6.92:sys 0.76:
10:real 7.20:user 6.53:sys 0.60:
10:real 7.65:user 6.87:sys 0.71:
10:real 7.35:user 6.66:sys 0.62:
10:real 7.32:user 6.62:sys 0.61:
10:real 7.17:user 6.58:sys 0.53:
10:real 7.46:user 6.68:sys 0.70:
10:real 7.25:user 6.61:sys 0.58:
10:real 7.28:user 6.64:sys 0.55:
10:real 7.24:user 6.64:sys 0.55:
10:real 7.27:user 6.65:sys 0.57:
20:real 7.61:user 6.97:sys 0.58:
20:real 7.61:user 6.93:sys 0.60:
20:real 7.58:user 6.92:sys 0.60:
20:real 7.40:user 6.78:sys 0.56:
20:real 7.59:user 6.96:sys 0.58:
20:real 7.64:user 7.02:sys 0.54:
20:real 7.65:user 7.01:sys 0.58:
20:real 7.58:user 6.95:sys 0.57:
20:real 7.58:user 6.93:sys 0.60:
20:real 7.65:user 6.97:sys 0.59:
20:real 8.12:user 7.31:sys 0.74:
20:real 7.88:user 7.06:sys 0.75:
20:real 7.57:user 6.87:sys 0.62:
20:real 7.47:user 6.80:sys 0.57:
20:real 7.52:user 6.85:sys 0.61:
20:real 8.13:user 7.28:sys 0.78:
20:real 7.50:user 6.89:sys 0.54:
20:real 7.62:user 6.95:sys 0.59:
20:real 7.55:user 6.89:sys 0.59:
20:real 8.08:user 7.30:sys 0.70:
30:real 9.19:user 8.45:sys 0.67:
30:real 9.73:user 8.79:sys 0.83:
30:real 9.69:user 8.77:sys 0.85:
30:real 9.68:user 8.83:sys 0.78:
30:real 9.75:user 8.80:sys 0.85:
30:real 9.70:user 8.78:sys 0.84:
30:real 9.60:user 8.72:sys 0.81:
30:real 9.46:user 8.61:sys 0.75:
30:real 9.33:user 8.52:sys 0.74:
30:real 9.27:user 8.46:sys 0.74:
30:real 9.28:user 8.50:sys 0.69:
30:real 9.22:user 8.46:sys 0.69:
30:real 9.58:user 8.56:sys 0.94:
30:real 9.72:user 8.57:sys 1.05:
30:real 9.20:user 8.47:sys 0.66:
30:real 9.97:user 9.11:sys 0.78:
30:real 9.97:user 9.06:sys 0.80:
30:real 9.96:user 9.08:sys 0.80:
30:real 9.91:user 9.09:sys 0.75:
30:real 9.94:user 9.04:sys 0.81:
40:real 9.90:user 9.18:sys 0.66:
40:real 9.68:user 8.97:sys 0.64:
40:real 9.98:user 9.17:sys 0.71:
40:real 9.93:user 9.16:sys 0.70:
40:real 10.80:user 9.80:sys 0.92:
40:real 9.97:user 9.20:sys 0.68:
40:real 9.93:user 9.14:sys 0.71:
40:real 9.89:user 9.14:sys 0.68:
40:real 9.96:user 9.18:sys 0.69:
40:real 10.78:user 9.85:sys 0.86:
40:real 10.60:user 9.47:sys 1.06:
40:real 10.48:user 9.30:sys 1.10:
40:real 10.34:user 9.31:sys 0.95:
40:real 10.22:user 9.26:sys 0.88:
40:real 10.08:user 9.22:sys 0.75:
40:real 10.08:user 9.23:sys 0.77:
40:real 9.90:user 9.08:sys 0.74:
40:real 9.97:user 9.07:sys 0.79:
40:real 10.00:user 9.19:sys 0.73:
40:real 10.04:user 9.22:sys 0.74:
50:real 10.72:user 9.84:sys 0.77:
50:real 10.73:user 9.94:sys 0.74:
50:real 10.68:user 9.85:sys 0.77:
50:real 10.75:user 9.94:sys 0.73:
50:real 10.43:user 9.61:sys 0.76:
50:real 10.69:user 9.89:sys 0.74:
50:real 10.72:user 9.87:sys 0.76:
50:real 10.73:user 9.90:sys 0.77:
50:real 10.71:user 9.86:sys 0.78:
50:real 10.72:user 9.87:sys 0.77:
50:real 11.43:user 10.37:sys 0.99:
50:real 11.22:user 10.01:sys 1.13:
50:real 10.94:user 9.88:sys 0.94:
50:real 10.76:user 9.87:sys 0.81:
50:real 11.80:user 10.83:sys 0.91:
50:real 10.84:user 9.88:sys 0.87:
50:real 10.70:user 9.84:sys 0.81:
50:real 10.67:user 9.84:sys 0.77:
50:real 10.70:user 9.82:sys 0.80:
50:real 10.43:user 9.60:sys 0.77:
60:real 11.03:user 10.20:sys 0.77:
60:real 11.09:user 10.26:sys 0.75:
60:real 11.37:user 10.21:sys 1.09:
60:real 10.96:user 10.12:sys 0.75:
60:real 12.37:user 11.32:sys 0.95:
60:real 10.98:user 10.15:sys 0.76:
60:real 11.87:user 10.73:sys 1.07:
60:real 11.45:user 10.36:sys 0.99:
60:real 11.67:user 10.66:sys 0.93:
60:real 11.29:user 10.19:sys 1.01:
60:real 11.13:user 10.26:sys 0.78:
60:real 11.07:user 10.21:sys 0.79:
60:real 11.06:user 10.21:sys 0.79:
60:real 11.17:user 10.26:sys 0.83:
60:real 11.08:user 10.27:sys 0.75:
60:real 12.26:user 11.21:sys 0.99:
60:real 11.09:user 10.18:sys 0.81:
60:real 11.04:user 10.26:sys 0.72:
60:real 11.02:user 10.16:sys 0.79:
60:real 11.06:user 10.18:sys 0.79:
70:real 12.60:user 11.32:sys 1.21:
70:real 11.75:user 10.78:sys 0.89:
70:real 12.13:user 11.08:sys 0.94:
70:real 12.21:user 10.98:sys 1.15:
70:real 11.43:user 10.46:sys 0.86:
70:real 11.18:user 10.28:sys 0.82:
70:real 11.84:user 10.83:sys 0.93:
70:real 12.05:user 10.96:sys 0.99:
70:real 11.21:user 10.38:sys 0.75:
70:real 11.44:user 10.32:sys 1.05:
70:real 11.24:user 10.39:sys 0.77:
70:real 11.01:user 10.22:sys 0.73:
70:real 11.26:user 10.46:sys 0.73:
70:real 11.32:user 10.52:sys 0.71:
70:real 11.26:user 10.44:sys 0.75:
70:real 11.28:user 10.47:sys 0.75:
70:real 11.32:user 10.51:sys 0.73:
70:real 11.94:user 10.93:sys 0.95:
70:real 12.53:user 11.43:sys 1.03:
70:real 11.55:user 10.59:sys 0.87:
80:real 11.38:user 10.58:sys 0.72:
80:real 12.13:user 11.06:sys 1.01:
80:real 11.37:user 10.55:sys 0.72:
80:real 11.37:user 10.60:sys 0.69:
80:real 11.62:user 10.70:sys 0.85:
80:real 11.65:user 10.67:sys 0.88:
80:real 11.87:user 10.93:sys 0.86:
80:real 12.02:user 10.92:sys 1.03:
80:real 11.64:user 10.47:sys 1.07:
80:real 11.53:user 10.64:sys 0.81:
80:real 11.45:user 10.63:sys 0.75:
80:real 11.85:user 10.87:sys 0.88:
80:real 11.35:user 10.58:sys 0.69:
80:real 11.90:user 10.87:sys 0.95:
80:real 12.11:user 10.98:sys 1.04:
80:real 11.51:user 10.66:sys 0.77:
80:real 11.11:user 10.35:sys 0.70:
80:real 11.42:user 10.65:sys 0.68:
80:real 11.44:user 10.66:sys 0.71:
80:real 12.23:user 11.17:sys 1.00:
90:real 11.58:user 10.74:sys 0.75:
90:real 11.54:user 10.73:sys 0.75:
90:real 11.23:user 10.46:sys 0.71:
90:real 11.60:user 10.73:sys 0.78:
90:real 11.82:user 10.95:sys 0.79:
90:real 12.06:user 10.94:sys 1.05:
90:real 12.21:user 11.09:sys 1.01:
90:real 11.58:user 10.74:sys 0.76:
90:real 11.95:user 11.01:sys 0.86:
90:real 11.94:user 11.01:sys 0.82:
90:real 11.92:user 10.90:sys 0.93:
90:real 12.19:user 11.07:sys 1.05:
90:real 11.71:user 10.68:sys 0.92:
90:real 11.93:user 11.00:sys 0.85:
90:real 11.88:user 10.94:sys 0.86:
90:real 11.96:user 10.96:sys 0.89:
90:real 12.21:user 11.24:sys 0.90:
90:real 11.74:user 10.67:sys 0.97:
90:real 11.78:user 10.89:sys 0.82:
90:real 11.92:user 10.93:sys 0.91:

View File

@ -0,0 +1,200 @@
100:real 14.24:user 13.32:sys 0.81:
100:real 14.19:user 13.31:sys 0.79:
100:real 14.23:user 13.28:sys 0.85:
100:real 14.20:user 13.31:sys 0.80:
100:real 14.26:user 13.34:sys 0.82:
100:real 13.82:user 12.93:sys 0.81:
100:real 14.36:user 13.41:sys 0.84:
100:real 14.23:user 13.37:sys 0.79:
100:real 14.31:user 13.38:sys 0.81:
100:real 15.17:user 13.55:sys 1.54:
100:real 15.43:user 14.08:sys 1.23:
100:real 15.04:user 13.91:sys 1.04:
100:real 15.13:user 13.78:sys 1.24:
100:real 15.02:user 13.93:sys 1.01:
100:real 15.35:user 14.01:sys 1.22:
100:real 14.98:user 13.90:sys 1.01:
100:real 14.95:user 13.57:sys 1.25:
100:real 15.54:user 14.20:sys 1.26:
100:real 14.57:user 13.25:sys 1.21:
100:real 15.07:user 13.93:sys 1.05:
10:real 11.98:user 10.71:sys 1.17:
10:real 11.86:user 10.95:sys 0.85:
10:real 11.85:user 10.98:sys 0.81:
10:real 11.88:user 11.01:sys 0.78:
10:real 11.82:user 10.95:sys 0.80:
10:real 11.58:user 10.71:sys 0.81:
10:real 11.90:user 10.93:sys 0.88:
10:real 11.92:user 11.01:sys 0.85:
10:real 11.84:user 10.94:sys 0.83:
10:real 11.84:user 10.93:sys 0.81:
10:real 12.45:user 11.40:sys 0.97:
10:real 11.93:user 10.76:sys 1.05:
10:real 11.98:user 10.98:sys 0.92:
10:real 12.44:user 11.42:sys 0.94:
10:real 12.62:user 11.28:sys 1.24:
10:real 12.35:user 11.11:sys 1.16:
10:real 11.91:user 11.00:sys 0.83:
10:real 13.40:user 12.14:sys 1.19:
10:real 11.89:user 10.96:sys 0.84:
10:real 13.11:user 11.86:sys 1.19:
20:real 12.66:user 11.62:sys 0.94:
20:real 11.83:user 10.92:sys 0.85:
20:real 12.57:user 11.43:sys 1.06:
20:real 13.15:user 11.92:sys 1.16:
20:real 12.02:user 10.92:sys 0.99:
20:real 12.33:user 11.29:sys 0.96:
20:real 12.62:user 11.36:sys 1.15:
20:real 12.76:user 11.53:sys 1.14:
20:real 12.04:user 11.00:sys 0.94:
20:real 12.42:user 11.36:sys 0.99:
20:real 13.08:user 11.82:sys 1.14:
20:real 12.30:user 10.93:sys 1.29:
20:real 13.22:user 12.06:sys 1.07:
20:real 11.75:user 10.86:sys 0.83:
20:real 11.79:user 10.86:sys 0.85:
20:real 11.76:user 10.91:sys 0.79:
20:real 12.98:user 11.85:sys 1.07:
20:real 11.76:user 10.87:sys 0.81:
20:real 11.75:user 10.92:sys 0.77:
20:real 12.97:user 11.94:sys 0.96:
30:real 12.60:user 11.24:sys 1.25:
30:real 13.52:user 12.34:sys 1.11:
30:real 12.86:user 11.83:sys 0.93:
30:real 13.34:user 12.09:sys 1.17:
30:real 12.54:user 11.46:sys 0.98:
30:real 13.30:user 11.90:sys 1.31:
30:real 13.25:user 12.11:sys 1.04:
30:real 12.38:user 11.37:sys 0.93:
30:real 12.28:user 11.34:sys 0.86:
30:real 12.25:user 11.36:sys 0.82:
30:real 12.34:user 11.39:sys 0.85:
30:real 12.30:user 11.41:sys 0.83:
30:real 12.37:user 11.44:sys 0.85:
30:real 12.26:user 11.37:sys 0.83:
30:real 12.34:user 11.39:sys 0.86:
30:real 12.09:user 11.19:sys 0.82:
30:real 12.68:user 11.54:sys 1.03:
30:real 12.78:user 11.70:sys 1.00:
30:real 13.33:user 12.00:sys 1.23:
30:real 12.52:user 11.42:sys 1.00:
40:real 12.57:user 11.62:sys 0.84:
40:real 13.67:user 12.56:sys 1.03:
40:real 13.89:user 12.56:sys 1.21:
40:real 13.20:user 12.12:sys 1.01:
40:real 13.64:user 12.46:sys 1.08:
40:real 13.50:user 12.14:sys 1.26:
40:real 13.23:user 12.12:sys 1.01:
40:real 13.72:user 12.39:sys 1.25:
40:real 13.22:user 12.11:sys 1.00:
40:real 13.08:user 12.00:sys 1.01:
40:real 13.73:user 12.44:sys 1.19:
40:real 13.31:user 12.12:sys 1.10:
40:real 13.27:user 12.15:sys 1.01:
40:real 13.57:user 12.30:sys 1.19:
40:real 13.25:user 12.08:sys 1.06:
40:real 13.25:user 12.14:sys 1.03:
40:real 13.80:user 12.44:sys 1.27:
40:real 13.13:user 12.04:sys 1.00:
40:real 13.29:user 12.19:sys 1.00:
40:real 13.82:user 12.54:sys 1.20:
50:real 13.77:user 12.81:sys 0.85:
50:real 14.18:user 13.03:sys 1.07:
50:real 14.80:user 13.46:sys 1.23:
50:real 14.02:user 12.94:sys 1.00:
50:real 14.71:user 13.41:sys 1.19:
50:real 13.99:user 12.79:sys 1.12:
50:real 14.92:user 13.53:sys 1.29:
50:real 13.67:user 12.70:sys 0.90:
50:real 13.77:user 12.73:sys 0.95:
50:real 13.73:user 12.71:sys 0.95:
50:real 13.92:user 12.90:sys 0.93:
50:real 13.68:user 12.74:sys 0.86:
50:real 13.80:user 12.77:sys 0.95:
50:real 13.68:user 12.71:sys 0.90:
50:real 13.72:user 12.75:sys 0.88:
50:real 15.28:user 13.98:sys 1.22:
50:real 13.67:user 12.66:sys 0.93:
50:real 13.75:user 12.84:sys 0.85:
50:real 13.71:user 12.73:sys 0.89:
50:real 13.69:user 12.74:sys 0.88:
60:real 13.91:user 12.93:sys 0.88:
60:real 13.88:user 12.90:sys 0.92:
60:real 15.23:user 13.91:sys 1.21:
60:real 14.29:user 13.23:sys 0.98:
60:real 15.58:user 14.19:sys 1.27:
60:real 14.41:user 13.32:sys 1.00:
60:real 14.91:user 13.61:sys 1.18:
60:real 14.12:user 12.98:sys 1.07:
60:real 15.50:user 14.02:sys 1.36:
60:real 14.34:user 13.16:sys 1.11:
60:real 15.47:user 13.96:sys 1.38:
60:real 14.34:user 13.11:sys 1.16:
60:real 15.30:user 13.82:sys 1.36:
60:real 14.24:user 13.11:sys 1.06:
60:real 15.19:user 13.79:sys 1.28:
60:real 14.01:user 12.81:sys 1.12:
60:real 14.63:user 13.42:sys 1.10:
60:real 14.28:user 13.05:sys 1.14:
60:real 13.83:user 12.82:sys 0.90:
60:real 14.72:user 13.46:sys 1.17:
70:real 14.34:user 13.16:sys 1.07:
70:real 15.05:user 13.90:sys 1.06:
70:real 14.26:user 13.14:sys 1.02:
70:real 14.75:user 13.39:sys 1.28:
70:real 14.14:user 13.09:sys 0.95:
70:real 15.25:user 14.03:sys 1.15:
70:real 14.26:user 13.24:sys 0.93:
70:real 14.61:user 13.40:sys 1.15:
70:real 14.72:user 13.49:sys 1.14:
70:real 15.15:user 14.02:sys 1.07:
70:real 14.19:user 13.16:sys 0.93:
70:real 14.44:user 13.35:sys 1.01:
70:real 15.68:user 14.23:sys 1.33:
70:real 14.36:user 13.29:sys 1.00:
70:real 15.19:user 13.97:sys 1.10:
70:real 14.36:user 13.20:sys 1.08:
70:real 14.83:user 13.63:sys 1.09:
70:real 14.21:user 13.11:sys 1.02:
70:real 14.13:user 13.14:sys 0.89:
70:real 15.15:user 13.89:sys 1.18:
80:real 14.18:user 13.19:sys 0.89:
80:real 14.16:user 13.24:sys 0.86:
80:real 14.10:user 13.20:sys 0.82:
80:real 14.09:user 13.12:sys 0.91:
80:real 14.15:user 13.13:sys 0.93:
80:real 14.16:user 13.18:sys 0.92:
80:real 14.26:user 13.23:sys 0.94:
80:real 14.79:user 13.69:sys 1.02:
80:real 14.18:user 12.96:sys 1.10:
80:real 14.59:user 13.37:sys 1.14:
80:real 15.18:user 13.69:sys 1.37:
80:real 14.09:user 13.07:sys 0.94:
80:real 14.84:user 13.57:sys 1.15:
80:real 14.34:user 13.19:sys 1.07:
80:real 14.98:user 13.65:sys 1.21:
80:real 14.37:user 13.19:sys 1.10:
80:real 14.75:user 13.34:sys 1.31:
80:real 14.17:user 13.19:sys 0.91:
80:real 14.14:user 13.16:sys 0.89:
80:real 14.10:user 13.19:sys 0.85:
90:real 14.34:user 13.38:sys 0.86:
90:real 13.83:user 12.96:sys 0.81:
90:real 14.25:user 13.34:sys 0.82:
90:real 14.17:user 13.25:sys 0.85:
90:real 14.49:user 13.31:sys 1.06:
90:real 14.14:user 13.18:sys 0.88:
90:real 15.04:user 13.70:sys 1.23:
90:real 14.17:user 13.25:sys 0.84:
90:real 14.39:user 13.34:sys 0.93:
90:real 14.44:user 13.29:sys 1.07:
90:real 15.22:user 13.76:sys 1.34:
90:real 14.44:user 13.30:sys 1.06:
90:real 14.96:user 13.52:sys 1.33:
90:real 13.85:user 12.96:sys 0.82:
90:real 14.30:user 13.32:sys 0.89:
90:real 14.24:user 13.29:sys 0.88:
90:real 14.29:user 13.28:sys 0.92:
90:real 14.24:user 13.28:sys 0.89:
90:real 15.77:user 14.24:sys 1.43:
90:real 14.28:user 13.28:sys 0.92:

View File

@ -0,0 +1,200 @@
100:real 77.54:user 69.39:sys 7.94:
100:real 80.44:user 71.34:sys 8.87:
100:real 80.18:user 71.09:sys 8.85:
100:real 81.54:user 72.38:sys 8.93:
100:real 79.61:user 70.79:sys 8.61:
100:real 80.48:user 71.57:sys 8.68:
100:real 80.61:user 71.70:sys 8.71:
100:real 78.85:user 70.37:sys 8.29:
100:real 92.03:user 74.94:sys 16.84:
100:real 81.14:user 72.97:sys 7.97:
100:real 79.25:user 70.57:sys 8.48:
100:real 81.98:user 73.38:sys 8.40:
100:real 77.19:user 69.16:sys 7.83:
100:real 93.98:user 81.86:sys 11.97:
100:real 76.99:user 68.95:sys 7.90:
100:real 93.55:user 81.30:sys 12.06:
100:real 80.74:user 72.64:sys 7.97:
100:real 91.49:user 80.45:sys 10.81:
100:real 81.90:user 72.14:sys 9.55:
100:real 79.62:user 71.55:sys 7.87:
10:real 1.30:user 1.01:sys 0.18:
10:real 1.25:user 1.00:sys 0.19:
10:real 1.22:user 0.97:sys 0.20:
10:real 1.23:user 0.98:sys 0.20:
10:real 1.25:user 1.01:sys 0.18:
10:real 1.30:user 1.03:sys 0.21:
10:real 1.23:user 0.99:sys 0.19:
10:real 1.21:user 1.00:sys 0.16:
10:real 1.22:user 0.99:sys 0.18:
10:real 1.22:user 1.00:sys 0.17:
10:real 1.22:user 1.00:sys 0.17:
10:real 1.22:user 1.00:sys 0.17:
10:real 1.22:user 0.98:sys 0.18:
10:real 1.22:user 1.00:sys 0.17:
10:real 1.24:user 1.00:sys 0.18:
10:real 1.21:user 0.98:sys 0.18:
10:real 1.22:user 0.98:sys 0.19:
10:real 1.20:user 0.96:sys 0.18:
10:real 1.22:user 0.98:sys 0.19:
10:real 1.22:user 0.99:sys 0.18:
20:real 2.39:user 1.99:sys 0.33:
20:real 2.32:user 1.98:sys 0.29:
20:real 2.28:user 1.96:sys 0.27:
20:real 2.26:user 1.91:sys 0.29:
20:real 2.28:user 1.93:sys 0.29:
20:real 2.29:user 1.96:sys 0.28:
20:real 2.27:user 1.92:sys 0.30:
20:real 2.25:user 1.90:sys 0.30:
20:real 2.27:user 1.93:sys 0.29:
20:real 2.26:user 1.92:sys 0.28:
20:real 2.27:user 1.93:sys 0.28:
20:real 2.28:user 1.92:sys 0.30:
20:real 2.31:user 1.97:sys 0.29:
20:real 2.28:user 1.94:sys 0.29:
20:real 2.25:user 1.93:sys 0.27:
20:real 2.29:user 1.91:sys 0.32:
20:real 2.33:user 1.95:sys 0.30:
20:real 2.29:user 1.97:sys 0.27:
20:real 2.30:user 1.95:sys 0.30:
20:real 2.28:user 1.95:sys 0.27:
30:real 3.80:user 3.24:sys 0.50:
30:real 3.80:user 3.25:sys 0.49:
30:real 3.81:user 3.27:sys 0.49:
30:real 3.75:user 3.26:sys 0.44:
30:real 3.80:user 3.28:sys 0.46:
30:real 3.83:user 3.32:sys 0.45:
30:real 3.82:user 3.27:sys 0.50:
30:real 3.80:user 3.26:sys 0.49:
30:real 3.79:user 3.25:sys 0.49:
30:real 3.81:user 3.27:sys 0.49:
30:real 3.80:user 3.29:sys 0.46:
30:real 3.80:user 3.24:sys 0.51:
30:real 3.80:user 3.26:sys 0.50:
30:real 3.80:user 3.27:sys 0.47:
30:real 3.91:user 3.32:sys 0.50:
30:real 3.87:user 3.36:sys 0.46:
30:real 3.83:user 3.28:sys 0.50:
30:real 3.82:user 3.28:sys 0.49:
30:real 3.86:user 3.32:sys 0.48:
30:real 3.83:user 3.26:sys 0.51:
40:real 6.03:user 5.14:sys 0.84:
40:real 6.38:user 5.27:sys 1.04:
40:real 6.03:user 5.18:sys 0.80:
40:real 6.09:user 5.23:sys 0.81:
40:real 6.02:user 5.19:sys 0.78:
40:real 6.03:user 5.18:sys 0.79:
40:real 5.93:user 5.09:sys 0.78:
40:real 6.12:user 5.25:sys 0.79:
40:real 6.08:user 5.26:sys 0.77:
40:real 6.06:user 5.21:sys 0.79:
40:real 6.10:user 5.23:sys 0.82:
40:real 6.57:user 5.45:sys 1.07:
40:real 6.64:user 5.54:sys 1.04:
40:real 6.09:user 5.24:sys 0.80:
40:real 6.07:user 5.23:sys 0.79:
40:real 6.00:user 5.22:sys 0.73:
40:real 6.06:user 5.21:sys 0.79:
40:real 6.84:user 5.43:sys 1.32:
40:real 6.81:user 5.46:sys 1.30:
40:real 7.23:user 5.66:sys 1.50:
50:real 11.13:user 8.84:sys 2.22:
50:real 11.37:user 8.91:sys 2.39:
50:real 10.88:user 8.74:sys 2.06:
50:real 10.92:user 8.80:sys 2.05:
50:real 10.71:user 8.72:sys 1.91:
50:real 10.74:user 8.72:sys 1.96:
50:real 9.73:user 8.39:sys 1.28:
50:real 9.40:user 8.10:sys 1.25:
50:real 9.69:user 8.35:sys 1.29:
50:real 9.72:user 8.40:sys 1.26:
50:real 9.74:user 8.42:sys 1.23:
50:real 9.73:user 8.36:sys 1.32:
50:real 9.77:user 8.42:sys 1.29:
50:real 9.90:user 8.46:sys 1.38:
50:real 9.74:user 8.35:sys 1.34:
50:real 9.65:user 8.38:sys 1.21:
50:real 9.72:user 8.37:sys 1.29:
50:real 9.77:user 8.41:sys 1.26:
50:real 9.67:user 8.30:sys 1.32:
50:real 9.69:user 8.23:sys 1.38:
60:real 14.71:user 12.60:sys 2.05:
60:real 16.28:user 13.65:sys 2.57:
60:real 15.08:user 12.90:sys 2.09:
60:real 15.18:user 13.15:sys 1.96:
60:real 15.04:user 13.02:sys 1.96:
60:real 15.01:user 12.96:sys 1.99:
60:real 15.03:user 12.95:sys 1.98:
60:real 15.05:user 12.99:sys 1.99:
60:real 16.08:user 13.61:sys 2.42:
60:real 15.06:user 13.00:sys 1.99:
60:real 15.02:user 12.83:sys 2.09:
60:real 16.04:user 13.23:sys 2.73:
60:real 18.31:user 13.89:sys 4.35:
60:real 16.56:user 13.86:sys 2.62:
60:real 16.13:user 13.48:sys 2.53:
60:real 16.62:user 13.61:sys 2.93:
60:real 14.73:user 12.66:sys 2.01:
60:real 16.87:user 13.85:sys 2.96:
60:real 16.79:user 13.67:sys 3.03:
60:real 15.05:user 13.01:sys 1.99:
70:real 23.00:user 19.71:sys 3.23:
70:real 21.79:user 18.76:sys 2.96:
70:real 21.97:user 18.46:sys 3.39:
70:real 23.98:user 19.82:sys 4.10:
70:real 24.06:user 20.10:sys 3.89:
70:real 24.12:user 19.91:sys 4.12:
70:real 23.88:user 19.91:sys 3.90:
70:real 22.65:user 18.93:sys 3.63:
70:real 21.64:user 18.35:sys 3.17:
70:real 23.27:user 19.98:sys 3.23:
70:real 21.86:user 18.87:sys 2.93:
70:real 21.79:user 18.86:sys 2.83:
70:real 23.14:user 19.81:sys 3.28:
70:real 22.82:user 19.35:sys 3.38:
70:real 24.59:user 19.53:sys 4.93:
70:real 24.68:user 20.17:sys 4.40:
70:real 23.57:user 19.68:sys 3.80:
70:real 23.22:user 19.35:sys 3.75:
70:real 21.93:user 18.74:sys 3.10:
70:real 23.82:user 20.03:sys 3.69:
80:real 32.84:user 28.57:sys 4.15:
80:real 35.72:user 30.26:sys 5.34:
80:real 35.20:user 29.71:sys 5.36:
80:real 33.62:user 29.03:sys 4.47:
80:real 35.16:user 29.19:sys 5.84:
80:real 32.96:user 28.61:sys 4.25:
80:real 33.29:user 29.03:sys 4.16:
80:real 33.17:user 29.06:sys 4.04:
80:real 33.01:user 28.92:sys 4.00:
80:real 32.86:user 28.69:sys 4.09:
80:real 32.95:user 28.71:sys 4.15:
80:real 31.93:user 27.95:sys 3.92:
80:real 32.91:user 28.86:sys 3.94:
80:real 32.83:user 28.83:sys 3.93:
80:real 32.88:user 28.83:sys 3.95:
80:real 32.57:user 28.25:sys 4.25:
80:real 33.60:user 28.95:sys 4.52:
80:real 35.65:user 29.79:sys 5.75:
80:real 37.22:user 30.37:sys 6.70:
80:real 35.82:user 30.37:sys 5.33:
90:real 47.74:user 41.64:sys 6.02:
90:real 47.48:user 41.58:sys 5.84:
90:real 48.60:user 41.76:sys 6.64:
90:real 48.40:user 41.50:sys 6.77:
90:real 46.70:user 40.96:sys 5.61:
90:real 46.73:user 40.90:sys 5.73:
90:real 47.53:user 41.40:sys 6.04:
90:real 51.14:user 43.38:sys 7.65:
90:real 49.31:user 41.92:sys 7.23:
90:real 47.34:user 41.36:sys 5.85:
90:real 49.56:user 41.57:sys 7.83:
90:real 47.18:user 41.26:sys 5.80:
90:real 47.54:user 40.79:sys 6.61:
90:real 48.35:user 41.22:sys 7.00:
90:real 49.06:user 42.22:sys 6.68:
90:real 49.38:user 42.57:sys 6.68:
90:real 50.27:user 42.25:sys 7.87:
90:real 50.76:user 42.71:sys 7.92:
90:real 49.69:user 42.19:sys 7.34:
90:real 54.83:user 45.00:sys 9.67:

View File

@ -0,0 +1,200 @@
100:real 181.41:user 166.84:sys 14.27:
100:real 167.88:user 155.16:sys 12.45:
100:real 180.96:user 171.06:sys 9.67:
100:real 164.02:user 154.39:sys 9.31:
100:real 168.53:user 158.10:sys 10.22:
100:real 157.12:user 148.21:sys 8.70:
100:real 163.64:user 153.31:sys 10.02:
100:real 160.52:user 151.37:sys 8.96:
100:real 178.13:user 168.23:sys 9.69:
100:real 154.00:user 144.51:sys 9.21:
100:real 158.53:user 148.77:sys 9.49:
100:real 167.51:user 156.50:sys 10.84:
100:real 158.76:user 149.09:sys 9.41:
100:real 159.12:user 149.53:sys 9.31:
100:real 162.45:user 152.21:sys 10.01:
100:real 163.90:user 154.32:sys 9.33:
100:real 166.35:user 155.23:sys 10.94:
100:real 168.56:user 158.69:sys 9.54:
100:real 156.52:user 147.66:sys 8.66:
100:real 168.04:user 158.83:sys 8.96:
10:real 1.40:user 1.09:sys 0.20:
10:real 1.30:user 1.05:sys 0.20:
10:real 1.32:user 1.07:sys 0.19:
10:real 1.31:user 1.09:sys 0.17:
10:real 1.33:user 1.11:sys 0.16:
10:real 1.31:user 1.09:sys 0.16:
10:real 1.30:user 1.07:sys 0.17:
10:real 1.33:user 1.09:sys 0.19:
10:real 1.29:user 1.06:sys 0.18:
10:real 1.31:user 1.08:sys 0.18:
10:real 1.34:user 1.09:sys 0.19:
10:real 1.32:user 1.08:sys 0.19:
10:real 1.30:user 1.09:sys 0.16:
10:real 1.32:user 1.09:sys 0.17:
10:real 1.32:user 1.08:sys 0.19:
10:real 1.32:user 1.08:sys 0.19:
10:real 1.30:user 1.07:sys 0.19:
10:real 1.33:user 1.07:sys 0.20:
10:real 1.26:user 1.03:sys 0.18:
10:real 1.33:user 1.09:sys 0.19:
20:real 2.74:user 2.38:sys 0.30:
20:real 2.73:user 2.36:sys 0.32:
20:real 2.72:user 2.35:sys 0.32:
20:real 2.76:user 2.40:sys 0.30:
20:real 2.74:user 2.39:sys 0.29:
20:real 2.74:user 2.38:sys 0.31:
20:real 2.75:user 2.36:sys 0.33:
20:real 2.78:user 2.42:sys 0.31:
20:real 2.74:user 2.35:sys 0.34:
20:real 2.75:user 2.41:sys 0.29:
20:real 2.75:user 2.40:sys 0.30:
20:real 2.73:user 2.38:sys 0.31:
20:real 2.79:user 2.41:sys 0.31:
20:real 2.77:user 2.39:sys 0.29:
20:real 2.77:user 2.40:sys 0.32:
20:real 2.76:user 2.41:sys 0.30:
20:real 2.77:user 2.42:sys 0.29:
20:real 2.75:user 2.39:sys 0.31:
20:real 2.74:user 2.39:sys 0.30:
20:real 2.72:user 2.35:sys 0.31:
30:real 5.17:user 4.59:sys 0.53:
30:real 5.17:user 4.56:sys 0.56:
30:real 5.18:user 4.59:sys 0.54:
30:real 5.54:user 4.72:sys 0.76:
30:real 5.02:user 4.43:sys 0.54:
30:real 5.12:user 4.50:sys 0.55:
30:real 5.12:user 4.50:sys 0.57:
30:real 5.68:user 4.62:sys 0.98:
30:real 5.19:user 4.52:sys 0.59:
30:real 5.54:user 4.65:sys 0.82:
30:real 5.13:user 4.50:sys 0.58:
30:real 5.16:user 4.52:sys 0.57:
30:real 5.15:user 4.52:sys 0.57:
30:real 5.25:user 4.60:sys 0.59:
30:real 5.18:user 4.53:sys 0.59:
30:real 5.18:user 4.58:sys 0.55:
30:real 5.18:user 4.58:sys 0.55:
30:real 5.21:user 4.59:sys 0.56:
30:real 5.04:user 4.50:sys 0.49:
30:real 5.16:user 4.55:sys 0.56:
40:real 8.58:user 7.58:sys 0.91:
40:real 8.56:user 7.65:sys 0.86:
40:real 8.52:user 7.65:sys 0.82:
40:real 8.56:user 7.60:sys 0.91:
40:real 8.51:user 7.60:sys 0.86:
40:real 8.55:user 7.61:sys 0.89:
40:real 8.57:user 7.61:sys 0.90:
40:real 9.32:user 8.05:sys 1.21:
40:real 8.55:user 7.62:sys 0.83:
40:real 8.68:user 7.62:sys 1.00:
40:real 8.66:user 7.63:sys 0.96:
40:real 8.60:user 7.66:sys 0.89:
40:real 8.40:user 7.49:sys 0.84:
40:real 9.02:user 7.59:sys 1.35:
40:real 9.34:user 7.96:sys 1.30:
40:real 9.15:user 7.88:sys 1.17:
40:real 9.06:user 7.82:sys 1.16:
40:real 9.46:user 8.09:sys 1.30:
40:real 8.72:user 7.66:sys 0.99:
40:real 8.71:user 7.74:sys 0.91:
50:real 13.87:user 12.38:sys 1.43:
50:real 14.68:user 12.49:sys 2.11:
50:real 13.67:user 12.10:sys 1.49:
50:real 15.10:user 12.88:sys 2.17:
50:real 13.95:user 12.44:sys 1.46:
50:real 14.11:user 12.61:sys 1.43:
50:real 13.93:user 12.47:sys 1.40:
50:real 13.97:user 12.47:sys 1.41:
50:real 13.89:user 12.42:sys 1.42:
50:real 15.20:user 12.88:sys 2.24:
50:real 15.23:user 12.93:sys 2.23:
50:real 13.89:user 12.34:sys 1.47:
50:real 15.02:user 12.71:sys 2.21:
50:real 14.37:user 12.34:sys 1.96:
50:real 14.65:user 12.68:sys 1.90:
50:real 14.37:user 12.47:sys 1.82:
50:real 14.18:user 12.57:sys 1.53:
50:real 14.70:user 12.55:sys 2.04:
50:real 13.93:user 12.40:sys 1.48:
50:real 13.92:user 12.44:sys 1.43:
60:real 23.65:user 20.97:sys 2.62:
60:real 22.12:user 19.89:sys 2.14:
60:real 22.03:user 19.89:sys 2.09:
60:real 22.89:user 20.20:sys 2.60:
60:real 22.16:user 19.77:sys 2.26:
60:real 23.47:user 20.63:sys 2.75:
60:real 23.48:user 20.27:sys 3.12:
60:real 22.84:user 20.28:sys 2.42:
60:real 23.51:user 20.72:sys 2.70:
60:real 23.14:user 20.41:sys 2.63:
60:real 22.64:user 20.21:sys 2.31:
60:real 21.98:user 19.88:sys 2.03:
60:real 22.13:user 19.95:sys 2.13:
60:real 22.17:user 19.95:sys 2.14:
60:real 22.17:user 20.06:sys 2.06:
60:real 22.17:user 19.99:sys 2.11:
60:real 22.27:user 20.15:sys 2.03:
60:real 22.09:user 20.02:sys 2.01:
60:real 22.07:user 19.92:sys 2.09:
60:real 21.53:user 19.36:sys 2.08:
70:real 33.39:user 29.96:sys 3.34:
70:real 33.98:user 29.85:sys 4.04:
70:real 33.48:user 29.51:sys 3.86:
70:real 32.26:user 28.92:sys 3.23:
70:real 34.58:user 30.19:sys 4.27:
70:real 33.90:user 30.06:sys 3.74:
70:real 32.47:user 29.36:sys 3.01:
70:real 34.77:user 31.01:sys 3.69:
70:real 35.85:user 31.26:sys 4.49:
70:real 35.30:user 30.54:sys 4.65:
70:real 33.13:user 29.99:sys 3.02:
70:real 32.61:user 29.47:sys 3.05:
70:real 32.55:user 29.43:sys 2.99:
70:real 36.19:user 31.40:sys 4.68:
70:real 33.88:user 29.85:sys 3.90:
70:real 33.22:user 29.51:sys 3.61:
70:real 32.01:user 28.77:sys 3.12:
70:real 35.67:user 31.20:sys 4.41:
70:real 34.98:user 30.94:sys 3.95:
70:real 34.14:user 30.65:sys 3.41:
80:real 51.63:user 46.25:sys 5.23:
80:real 49.52:user 44.62:sys 4.78:
80:real 49.85:user 44.87:sys 4.82:
80:real 49.83:user 44.79:sys 4.93:
80:real 51.45:user 46.36:sys 4.95:
80:real 50.58:user 45.41:sys 5.04:
80:real 50.57:user 45.54:sys 4.88:
80:real 52.68:user 46.95:sys 5.58:
80:real 50.53:user 45.80:sys 4.58:
80:real 52.15:user 45.95:sys 6.06:
80:real 50.13:user 45.57:sys 4.40:
80:real 50.56:user 46.05:sys 4.38:
80:real 53.88:user 48.08:sys 5.65:
80:real 55.11:user 48.51:sys 6.46:
80:real 55.84:user 48.72:sys 6.95:
80:real 53.83:user 47.94:sys 5.78:
80:real 50.92:user 46.39:sys 4.43:
80:real 52.61:user 46.86:sys 5.65:
80:real 50.63:user 45.62:sys 4.87:
80:real 51.77:user 46.73:sys 4.90:
90:real 76.34:user 69.91:sys 6.23:
90:real 76.69:user 70.29:sys 6.28:
90:real 77.93:user 70.49:sys 7.26:
90:real 75.14:user 69.65:sys 5.36:
90:real 80.60:user 72.33:sys 8.08:
90:real 76.80:user 70.60:sys 6.02:
90:real 76.02:user 68.03:sys 7.80:
90:real 74.09:user 67.43:sys 6.46:
90:real 75.19:user 68.86:sys 6.13:
90:real 76.16:user 69.81:sys 6.15:
90:real 74.95:user 68.69:sys 6.06:
90:real 75.48:user 69.24:sys 6.04:
90:real 75.00:user 68.62:sys 6.18:
90:real 73.61:user 66.97:sys 6.43:
90:real 76.25:user 68.39:sys 7.66:
90:real 74.87:user 67.97:sys 6.69:
90:real 75.48:user 67.80:sys 7.48:
90:real 73.97:user 67.26:sys 6.50:
90:real 76.24:user 68.33:sys 7.72:
90:real 74.44:user 67.85:sys 6.38:

View File

@ -0,0 +1,200 @@
100:real 254.19:user 243.58:sys 10.36:
100:real 284.13:user 267.73:sys 16.07:
100:real 270.95:user 253.92:sys 16.74:
100:real 286.06:user 270.14:sys 15.62:
100:real 243.78:user 233.49:sys 10.05:
100:real 246.91:user 234.00:sys 12.65:
100:real 246.84:user 236.35:sys 10.23:
100:real 255.70:user 244.64:sys 10.79:
100:real 254.83:user 241.57:sys 12.99:
100:real 248.34:user 237.23:sys 10.87:
100:real 246.96:user 236.22:sys 10.46:
100:real 300.98:user 281.13:sys 19.61:
100:real 286.24:user 274.95:sys 11.09:
100:real 248.49:user 238.08:sys 10.18:
100:real 264.10:user 251.21:sys 12.69:
100:real 257.62:user 247.43:sys 9.92:
100:real 258.53:user 245.76:sys 12.53:
100:real 245.29:user 235.16:sys 9.85:
100:real 272.61:user 259.12:sys 13.18:
100:real 292.90:user 259.10:sys 33.48:
10:real 1.26:user 0.96:sys 0.19:
10:real 1.17:user 0.95:sys 0.17:
10:real 1.16:user 0.91:sys 0.20:
10:real 1.17:user 0.94:sys 0.18:
10:real 1.16:user 0.93:sys 0.16:
10:real 1.11:user 0.90:sys 0.16:
10:real 1.13:user 0.91:sys 0.17:
10:real 1.13:user 0.91:sys 0.17:
10:real 1.17:user 0.94:sys 0.18:
10:real 1.12:user 0.91:sys 0.16:
10:real 1.17:user 0.92:sys 0.20:
10:real 1.21:user 1.00:sys 0.15:
10:real 1.20:user 0.95:sys 0.19:
10:real 1.24:user 1.00:sys 0.17:
10:real 1.16:user 0.94:sys 0.17:
10:real 1.20:user 0.96:sys 0.18:
10:real 1.17:user 0.95:sys 0.18:
10:real 1.19:user 0.97:sys 0.17:
10:real 1.17:user 0.96:sys 0.16:
10:real 1.18:user 0.95:sys 0.18:
20:real 2.24:user 1.90:sys 0.27:
20:real 2.15:user 1.83:sys 0.27:
20:real 2.14:user 1.81:sys 0.27:
20:real 2.12:user 1.79:sys 0.28:
20:real 2.14:user 1.81:sys 0.28:
20:real 2.24:user 1.86:sys 0.32:
20:real 2.14:user 1.81:sys 0.27:
20:real 2.15:user 1.83:sys 0.27:
20:real 2.14:user 1.78:sys 0.29:
20:real 2.10:user 1.80:sys 0.25:
20:real 2.14:user 1.83:sys 0.25:
20:real 2.08:user 1.77:sys 0.26:
20:real 2.12:user 1.78:sys 0.29:
20:real 2.09:user 1.77:sys 0.27:
20:real 2.13:user 1.82:sys 0.26:
20:real 2.11:user 1.79:sys 0.27:
20:real 2.15:user 1.83:sys 0.26:
20:real 2.18:user 1.82:sys 0.28:
20:real 2.09:user 1.77:sys 0.27:
20:real 2.27:user 1.87:sys 0.34:
30:real 3.68:user 3.14:sys 0.49:
30:real 3.70:user 3.19:sys 0.46:
30:real 3.65:user 3.10:sys 0.49:
30:real 3.67:user 3.14:sys 0.48:
30:real 3.67:user 3.14:sys 0.47:
30:real 3.67:user 3.13:sys 0.47:
30:real 3.64:user 3.14:sys 0.45:
30:real 3.77:user 3.19:sys 0.52:
30:real 3.63:user 3.11:sys 0.47:
30:real 3.67:user 3.12:sys 0.49:
30:real 4.17:user 3.27:sys 0.84:
30:real 3.63:user 3.09:sys 0.49:
30:real 3.65:user 3.12:sys 0.47:
30:real 3.67:user 3.09:sys 0.51:
30:real 3.73:user 3.18:sys 0.49:
30:real 3.79:user 3.16:sys 0.52:
30:real 3.67:user 3.13:sys 0.48:
30:real 3.66:user 3.15:sys 0.46:
30:real 3.90:user 3.27:sys 0.57:
30:real 3.64:user 3.12:sys 0.47:
40:real 6.23:user 5.31:sys 0.84:
40:real 6.19:user 5.31:sys 0.82:
40:real 6.68:user 5.43:sys 1.19:
40:real 6.24:user 5.38:sys 0.79:
40:real 6.25:user 5.35:sys 0.85:
40:real 6.51:user 5.47:sys 0.98:
40:real 6.24:user 5.37:sys 0.80:
40:real 6.14:user 5.26:sys 0.78:
40:real 6.17:user 5.37:sys 0.75:
40:real 6.15:user 5.33:sys 0.76:
40:real 6.20:user 5.32:sys 0.83:
40:real 6.17:user 5.32:sys 0.80:
40:real 6.21:user 5.32:sys 0.83:
40:real 6.14:user 5.33:sys 0.76:
40:real 6.15:user 5.30:sys 0.80:
40:real 6.17:user 5.34:sys 0.78:
40:real 6.15:user 5.29:sys 0.80:
40:real 6.20:user 5.29:sys 0.81:
40:real 6.12:user 5.32:sys 0.75:
40:real 6.40:user 5.54:sys 0.80:
50:real 10.27:user 8.88:sys 1.34:
50:real 10.36:user 8.87:sys 1.42:
50:real 10.45:user 9.01:sys 1.37:
50:real 10.43:user 9.00:sys 1.37:
50:real 10.63:user 8.97:sys 1.55:
50:real 10.63:user 9.03:sys 1.53:
50:real 11.29:user 9.33:sys 1.88:
50:real 11.02:user 9.05:sys 1.90:
50:real 10.73:user 9.08:sys 1.58:
50:real 11.58:user 9.48:sys 2.03:
50:real 10.06:user 8.58:sys 1.36:
50:real 10.23:user 8.87:sys 1.29:
50:real 11.65:user 9.46:sys 2.12:
50:real 11.50:user 9.41:sys 2.00:
50:real 11.33:user 9.35:sys 1.90:
50:real 10.33:user 8.80:sys 1.45:
50:real 10.93:user 9.18:sys 1.64:
50:real 11.22:user 9.20:sys 1.95:
50:real 11.43:user 9.41:sys 1.94:
50:real 11.41:user 9.41:sys 1.93:
60:real 17.34:user 14.59:sys 2.66:
60:real 18.84:user 15.43:sys 3.31:
60:real 17.97:user 14.97:sys 2.91:
60:real 17.90:user 15.02:sys 2.81:
60:real 18.07:user 14.96:sys 3.00:
60:real 18.45:user 15.18:sys 3.14:
60:real 19.40:user 16.05:sys 3.28:
60:real 18.59:user 15.31:sys 3.19:
60:real 17.62:user 14.70:sys 2.83:
60:real 17.83:user 14.90:sys 2.83:
60:real 18.09:user 15.27:sys 2.74:
60:real 17.33:user 14.50:sys 2.74:
60:real 17.73:user 14.78:sys 2.86:
60:real 17.87:user 14.98:sys 2.77:
60:real 16.31:user 14.15:sys 2.10:
60:real 17.83:user 15.22:sys 2.56:
60:real 16.50:user 14.20:sys 2.24:
60:real 16.47:user 14.25:sys 2.13:
60:real 16.64:user 14.35:sys 2.23:
60:real 16.55:user 14.21:sys 2.28:
70:real 24.61:user 21.39:sys 3.14:
70:real 24.83:user 21.58:sys 3.13:
70:real 24.81:user 21.60:sys 3.16:
70:real 24.68:user 21.47:sys 3.15:
70:real 24.69:user 21.49:sys 3.11:
70:real 24.66:user 21.57:sys 3.03:
70:real 24.67:user 21.46:sys 3.12:
70:real 26.24:user 22.16:sys 3.96:
70:real 24.58:user 21.33:sys 3.18:
70:real 24.59:user 21.52:sys 3.00:
70:real 24.95:user 21.58:sys 3.28:
70:real 24.82:user 21.59:sys 3.18:
70:real 24.67:user 21.14:sys 3.44:
70:real 24.64:user 21.37:sys 3.16:
70:real 24.65:user 21.41:sys 3.15:
70:real 26.09:user 22.15:sys 3.84:
70:real 24.67:user 21.11:sys 3.43:
70:real 27.89:user 21.67:sys 6.13:
70:real 25.91:user 21.94:sys 3.85:
70:real 24.99:user 21.25:sys 3.62:
80:real 40.29:user 35.39:sys 4.79:
80:real 42.40:user 35.99:sys 6.26:
80:real 43.13:user 37.09:sys 5.92:
80:real 41.31:user 35.83:sys 5.34:
80:real 40.67:user 35.73:sys 4.83:
80:real 40.16:user 35.56:sys 4.49:
80:real 40.55:user 35.70:sys 4.79:
80:real 40.02:user 35.47:sys 4.45:
80:real 40.66:user 35.66:sys 4.93:
80:real 40.53:user 35.55:sys 4.89:
80:real 43.94:user 37.13:sys 6.71:
80:real 41.98:user 35.91:sys 5.93:
80:real 41.69:user 36.01:sys 5.56:
80:real 40.82:user 35.82:sys 4.86:
80:real 40.89:user 35.81:sys 5.00:
80:real 43.04:user 37.23:sys 5.72:
80:real 43.08:user 36.59:sys 6.39:
80:real 45.34:user 37.62:sys 7.57:
80:real 43.28:user 36.46:sys 6.69:
80:real 42.85:user 37.17:sys 5.54:
90:real 78.47:user 71.29:sys 7.04:
90:real 78.37:user 70.68:sys 7.50:
90:real 79.41:user 71.82:sys 7.37:
90:real 78.26:user 70.15:sys 7.91:
90:real 80.67:user 72.79:sys 7.66:
90:real 97.37:user 88.85:sys 8.29:
90:real 78.75:user 71.77:sys 6.85:
90:real 86.47:user 75.94:sys 10.32:
90:real 87.69:user 76.95:sys 10.50:
90:real 83.65:user 74.51:sys 8.91:
90:real 84.21:user 76.04:sys 7.97:
90:real 79.62:user 72.10:sys 7.40:
90:real 84.60:user 75.80:sys 8.57:
90:real 79.53:user 70.83:sys 8.50:
90:real 80.17:user 71.92:sys 8.04:
90:real 78.26:user 70.10:sys 7.96:
90:real 79.06:user 70.54:sys 8.31:
90:real 89.24:user 80.51:sys 8.52:
90:real 78.19:user 71.32:sys 6.74:
90:real 80.64:user 71.30:sys 9.13:

View File

@ -0,0 +1,200 @@
100:real 308.56:user 297.42:sys 10.84:
100:real 346.85:user 334.50:sys 12.05:
100:real 346.17:user 331.84:sys 14.03:
100:real 300.37:user 289.37:sys 10.74:
100:real 302.70:user 292.22:sys 10.20:
100:real 306.46:user 293.30:sys 12.86:
100:real 301.13:user 289.71:sys 11.14:
100:real 322.75:user 311.50:sys 10.91:
100:real 305.02:user 294.32:sys 10.47:
100:real 363.38:user 348.29:sys 14.74:
100:real 299.31:user 288.46:sys 10.55:
100:real 304.51:user 292.94:sys 11.30:
100:real 308.19:user 294.27:sys 13.61:
100:real 328.06:user 315.68:sys 12.15:
100:real 304.57:user 293.86:sys 10.45:
100:real 302.25:user 291.60:sys 10.38:
100:real 327.20:user 311.47:sys 15.41:
100:real 355.24:user 343.66:sys 11.28:
100:real 311.39:user 300.61:sys 10.50:
100:real 355.02:user 343.64:sys 11.11:
10:real 1.48:user 1.18:sys 0.20:
10:real 1.40:user 1.15:sys 0.20:
10:real 1.43:user 1.18:sys 0.20:
10:real 1.46:user 1.19:sys 0.21:
10:real 1.44:user 1.19:sys 0.19:
10:real 1.43:user 1.17:sys 0.20:
10:real 1.38:user 1.15:sys 0.19:
10:real 1.45:user 1.19:sys 0.20:
10:real 1.41:user 1.19:sys 0.17:
10:real 1.42:user 1.17:sys 0.19:
10:real 1.43:user 1.20:sys 0.17:
10:real 1.42:user 1.17:sys 0.20:
10:real 1.42:user 1.18:sys 0.18:
10:real 1.42:user 1.17:sys 0.20:
10:real 1.42:user 1.17:sys 0.20:
10:real 1.43:user 1.18:sys 0.20:
10:real 1.44:user 1.20:sys 0.19:
10:real 1.44:user 1.20:sys 0.19:
10:real 1.43:user 1.18:sys 0.19:
10:real 1.43:user 1.18:sys 0.19:
20:real 2.81:user 2.45:sys 0.31:
20:real 2.83:user 2.47:sys 0.31:
20:real 2.80:user 2.45:sys 0.31:
20:real 2.82:user 2.48:sys 0.29:
20:real 2.80:user 2.43:sys 0.32:
20:real 2.80:user 2.47:sys 0.28:
20:real 2.82:user 2.44:sys 0.33:
20:real 2.85:user 2.48:sys 0.31:
20:real 2.81:user 2.45:sys 0.31:
20:real 2.82:user 2.46:sys 0.32:
20:real 2.82:user 2.45:sys 0.32:
20:real 2.82:user 2.47:sys 0.29:
20:real 2.85:user 2.44:sys 0.32:
20:real 2.83:user 2.48:sys 0.30:
20:real 2.83:user 2.47:sys 0.31:
20:real 2.82:user 2.48:sys 0.28:
20:real 2.81:user 2.46:sys 0.31:
20:real 2.80:user 2.44:sys 0.32:
20:real 2.83:user 2.45:sys 0.34:
20:real 2.80:user 2.43:sys 0.32:
30:real 4.92:user 4.33:sys 0.53:
30:real 4.84:user 4.27:sys 0.51:
30:real 5.06:user 4.37:sys 0.62:
30:real 4.90:user 4.32:sys 0.53:
30:real 5.03:user 4.40:sys 0.57:
30:real 4.94:user 4.36:sys 0.52:
30:real 5.03:user 4.42:sys 0.55:
30:real 4.97:user 4.34:sys 0.58:
30:real 5.45:user 4.58:sys 0.77:
30:real 4.93:user 4.34:sys 0.54:
30:real 5.04:user 4.38:sys 0.58:
30:real 4.96:user 4.33:sys 0.58:
30:real 5.05:user 4.41:sys 0.57:
30:real 4.93:user 4.28:sys 0.60:
30:real 4.96:user 4.30:sys 0.60:
30:real 4.93:user 4.31:sys 0.57:
30:real 4.99:user 4.34:sys 0.58:
30:real 4.96:user 4.35:sys 0.57:
30:real 5.02:user 4.38:sys 0.58:
30:real 4.99:user 4.43:sys 0.50:
40:real 8.94:user 7.61:sys 1.23:
40:real 8.97:user 7.55:sys 1.35:
40:real 8.47:user 7.42:sys 0.98:
40:real 8.43:user 7.39:sys 0.97:
40:real 8.30:user 7.33:sys 0.92:
40:real 8.16:user 7.20:sys 0.89:
40:real 8.79:user 7.38:sys 1.33:
40:real 8.73:user 7.54:sys 1.09:
40:real 8.81:user 7.49:sys 1.25:
40:real 8.40:user 7.34:sys 1.00:
40:real 8.37:user 7.32:sys 0.98:
40:real 8.33:user 7.36:sys 0.92:
40:real 8.35:user 7.27:sys 1.02:
40:real 8.60:user 7.37:sys 1.16:
40:real 8.89:user 7.53:sys 1.28:
40:real 8.74:user 7.54:sys 1.09:
40:real 9.41:user 7.77:sys 1.57:
40:real 8.28:user 7.27:sys 0.95:
40:real 8.23:user 7.27:sys 0.91:
40:real 8.35:user 7.32:sys 0.97:
50:real 13.12:user 11.24:sys 1.79:
50:real 12.95:user 11.34:sys 1.53:
50:real 13.74:user 11.52:sys 2.12:
50:real 13.27:user 11.34:sys 1.85:
50:real 12.98:user 11.35:sys 1.56:
50:real 13.55:user 11.38:sys 2.10:
50:real 13.14:user 11.24:sys 1.81:
50:real 13.00:user 11.40:sys 1.50:
50:real 13.72:user 11.49:sys 2.16:
50:real 13.13:user 11.29:sys 1.76:
50:real 12.97:user 11.36:sys 1.54:
50:real 13.60:user 11.42:sys 2.10:
50:real 13.22:user 11.29:sys 1.83:
50:real 12.77:user 11.27:sys 1.45:
50:real 12.77:user 11.34:sys 1.38:
50:real 12.79:user 11.33:sys 1.41:
50:real 12.93:user 11.42:sys 1.45:
50:real 12.86:user 11.32:sys 1.46:
50:real 12.75:user 11.30:sys 1.39:
50:real 12.86:user 11.38:sys 1.42:
60:real 21.75:user 18.95:sys 2.71:
60:real 22.30:user 19.24:sys 2.95:
60:real 22.34:user 19.39:sys 2.87:
60:real 20.64:user 18.52:sys 2.03:
60:real 21.24:user 18.78:sys 2.34:
60:real 20.50:user 18.08:sys 2.35:
60:real 20.75:user 18.22:sys 2.44:
60:real 20.40:user 18.16:sys 2.13:
60:real 20.25:user 18.12:sys 2.06:
60:real 20.71:user 18.42:sys 2.23:
60:real 20.83:user 18.51:sys 2.24:
60:real 20.18:user 17.98:sys 2.15:
60:real 20.65:user 18.39:sys 2.20:
60:real 21.67:user 18.94:sys 2.62:
60:real 21.45:user 18.79:sys 2.58:
60:real 21.45:user 18.64:sys 2.72:
60:real 21.12:user 18.70:sys 2.31:
60:real 20.44:user 18.04:sys 2.31:
60:real 20.87:user 18.27:sys 2.52:
60:real 20.17:user 17.91:sys 2.15:
70:real 30.32:user 27.11:sys 3.13:
70:real 29.63:user 26.59:sys 2.96:
70:real 30.78:user 27.33:sys 3.36:
70:real 30.81:user 27.42:sys 3.33:
70:real 32.19:user 28.07:sys 4.02:
70:real 31.33:user 27.51:sys 3.72:
70:real 31.02:user 27.15:sys 3.74:
70:real 31.27:user 27.20:sys 3.97:
70:real 30.69:user 27.20:sys 3.37:
70:real 30.26:user 26.81:sys 3.34:
70:real 30.26:user 26.88:sys 3.25:
70:real 30.35:user 26.75:sys 3.49:
70:real 30.18:user 26.55:sys 3.51:
70:real 30.35:user 26.71:sys 3.55:
70:real 30.19:user 26.43:sys 3.62:
70:real 30.05:user 26.55:sys 3.39:
70:real 30.15:user 26.63:sys 3.39:
70:real 30.07:user 26.57:sys 3.40:
70:real 29.98:user 26.54:sys 3.32:
70:real 30.85:user 27.26:sys 3.48:
80:real 49.44:user 44.72:sys 4.59:
80:real 50.06:user 45.17:sys 4.82:
80:real 49.36:user 44.65:sys 4.58:
80:real 49.74:user 44.91:sys 4.71:
80:real 49.93:user 45.11:sys 4.67:
80:real 49.88:user 45.17:sys 4.59:
80:real 49.87:user 45.06:sys 4.67:
80:real 50.12:user 45.28:sys 4.72:
80:real 50.36:user 45.22:sys 4.98:
80:real 50.36:user 44.98:sys 5.24:
80:real 53.01:user 46.34:sys 6.49:
80:real 52.35:user 45.84:sys 6.37:
80:real 53.01:user 46.77:sys 6.09:
80:real 54.49:user 47.55:sys 6.79:
80:real 50.16:user 45.26:sys 4.80:
80:real 50.37:user 45.38:sys 4.90:
80:real 51.14:user 44.74:sys 6.24:
80:real 50.63:user 44.53:sys 5.96:
80:real 51.37:user 45.38:sys 5.82:
80:real 49.74:user 43.91:sys 5.70:
90:real 112.80:user 102.55:sys 10.01:
90:real 115.99:user 106.86:sys 8.89:
90:real 111.30:user 100.84:sys 10.18:
90:real 109.57:user 95.99:sys 13.33:
90:real 110.48:user 100.63:sys 9.61:
90:real 122.26:user 112.91:sys 9.10:
90:real 103.77:user 95.17:sys 8.39:
90:real 96.86:user 89.26:sys 7.39:
90:real 99.89:user 92.64:sys 7.07:
90:real 99.55:user 91.21:sys 8.14:
90:real 111.42:user 100.99:sys 10.16:
90:real 115.10:user 105.47:sys 9.40:
90:real 103.51:user 95.05:sys 8.32:
90:real 116.22:user 105.66:sys 10.36:
90:real 118.66:user 109.21:sys 9.31:
90:real 103.82:user 94.80:sys 8.81:
90:real 107.56:user 100.07:sys 7.33:
90:real 102.87:user 94.70:sys 8.04:
90:real 107.37:user 98.25:sys 8.88:
90:real 106.49:user 98.10:sys 8.26:

View File

@ -0,0 +1,120 @@
100:gen_omp:0:1:0.000427
100:gen_omp:0:1:0.000435
100:gen_omp:0:1:0.000429
100:gen_omp:0:1:0.000426
100:gen_omp:0:1:0.000432
100:gen_omp:0:1:0.000436
100:gen_omp:0:1:0.000429
100:gen_omp:0:1:0.000428
100:gen_omp:0:1:0.000426
100:gen_omp:0:1:0.000408
100:gen_omp:0:1:0.000412
100:gen_omp:0:1:0.000414
100:gen_omp:0:1:0.000414
100:gen_omp:0:1:0.000446
100:gen_omp:0:1:0.000417
100:gen_omp:0:1:0.000392
100:gen_omp:0:1:0.000416
100:gen_omp:0:1:0.000395
100:gen_omp:0:1:0.000341
100:gen_omp:0:1:0.000343
1000:gen_omp:0:1:0.002955
1000:gen_omp:0:1:0.00295
1000:gen_omp:0:1:0.002948
1000:gen_omp:0:1:0.002929
1000:gen_omp:0:1:0.002938
1000:gen_omp:0:1:0.002907
1000:gen_omp:0:1:0.002953
1000:gen_omp:0:1:0.002952
1000:gen_omp:0:1:0.002951
1000:gen_omp:0:1:0.00295
1000:gen_omp:0:1:0.002952
1000:gen_omp:0:1:0.002933
1000:gen_omp:0:1:0.002912
1000:gen_omp:0:1:0.002939
1000:gen_omp:0:1:0.00294
1000:gen_omp:0:1:0.002948
1000:gen_omp:0:1:0.002942
1000:gen_omp:0:1:0.002955
1000:gen_omp:0:1:0.002927
1000:gen_omp:0:1:0.002953
10000:gen_omp:0:1:0.028354
10000:gen_omp:0:1:0.028318
10000:gen_omp:0:1:0.028235
10000:gen_omp:0:1:0.028353
10000:gen_omp:0:1:0.028306
10000:gen_omp:0:1:0.028394
10000:gen_omp:0:1:0.028305
10000:gen_omp:0:1:0.028203
10000:gen_omp:0:1:0.028165
10000:gen_omp:0:1:0.028284
10000:gen_omp:0:1:0.028236
10000:gen_omp:0:1:0.028244
10000:gen_omp:0:1:0.028245
10000:gen_omp:0:1:0.028324
10000:gen_omp:0:1:0.02847
10000:gen_omp:0:1:0.028141
10000:gen_omp:0:1:0.028232
10000:gen_omp:0:1:0.028314
10000:gen_omp:0:1:0.02823
10000:gen_omp:0:1:0.028275
100000:gen_omp:0:1:0.450409
100000:gen_omp:0:1:0.443167
100000:gen_omp:0:1:0.442001
100000:gen_omp:0:1:0.453455
100000:gen_omp:0:1:0.453578
100000:gen_omp:0:1:0.442623
100000:gen_omp:0:1:0.443893
100000:gen_omp:0:1:0.442075
100000:gen_omp:0:1:0.434862
100000:gen_omp:0:1:0.449875
100000:gen_omp:0:1:0.436116
100000:gen_omp:0:1:0.440275
100000:gen_omp:0:1:0.44918
100000:gen_omp:0:1:0.440021
100000:gen_omp:0:1:0.445543
100000:gen_omp:0:1:0.449671
100000:gen_omp:0:1:0.438401
100000:gen_omp:0:1:0.451352
100000:gen_omp:0:1:0.441231
100000:gen_omp:0:1:0.451271
1000000:gen_omp:0:1:4.46412
1000000:gen_omp:0:1:4.4402
1000000:gen_omp:0:1:4.41831
1000000:gen_omp:0:1:4.39515
1000000:gen_omp:0:1:4.41876
1000000:gen_omp:0:1:4.45696
1000000:gen_omp:0:1:4.42537
1000000:gen_omp:0:1:4.49228
1000000:gen_omp:0:1:4.47662
1000000:gen_omp:0:1:4.43187
1000000:gen_omp:0:1:4.46779
1000000:gen_omp:0:1:4.43493
1000000:gen_omp:0:1:4.46829
1000000:gen_omp:0:1:4.44534
1000000:gen_omp:0:1:4.48334
1000000:gen_omp:0:1:4.42231
1000000:gen_omp:0:1:4.424
1000000:gen_omp:0:1:4.43739
1000000:gen_omp:0:1:4.46183
1000000:gen_omp:0:1:4.45029
10000000:gen_omp:0:1:51.1169
10000000:gen_omp:0:1:51.0945
10000000:gen_omp:0:1:51.1788
10000000:gen_omp:0:1:51.1402
10000000:gen_omp:0:1:51.1887
10000000:gen_omp:0:1:51.0986
10000000:gen_omp:0:1:51.2076
10000000:gen_omp:0:1:51.1281
10000000:gen_omp:0:1:51.1391
10000000:gen_omp:0:1:51.1819
10000000:gen_omp:0:1:51.153
10000000:gen_omp:0:1:51.175
10000000:gen_omp:0:1:51.163
10000000:gen_omp:0:1:51.1547
10000000:gen_omp:0:1:51.1707
10000000:gen_omp:0:1:50.8792
10000000:gen_omp:0:1:51.1588
10000000:gen_omp:0:1:51.1697
10000000:gen_omp:0:1:51.1975
10000000:gen_omp:0:1:51.1555

View File

@ -0,0 +1,120 @@
100:gen_thread:0:1:0.000394
100:gen_thread:0:1:0.000392
100:gen_thread:0:1:0.000395
100:gen_thread:0:1:0.000391
100:gen_thread:0:1:0.000396
100:gen_thread:0:1:0.000391
100:gen_thread:0:1:0.00039
100:gen_thread:0:1:0.000403
100:gen_thread:0:1:0.000393
100:gen_thread:0:1:0.000392
100:gen_thread:0:1:0.000407
100:gen_thread:0:1:0.000404
100:gen_thread:0:1:0.000402
100:gen_thread:0:1:0.000402
100:gen_thread:0:1:0.000297
100:gen_thread:0:1:0.000298
100:gen_thread:0:1:0.000307
100:gen_thread:0:1:0.000299
100:gen_thread:0:1:0.000302
100:gen_thread:0:1:0.000312
1000:gen_thread:0:1:0.002929
1000:gen_thread:0:1:0.002943
1000:gen_thread:0:1:0.002863
1000:gen_thread:0:1:0.002831
1000:gen_thread:0:1:0.00283
1000:gen_thread:0:1:0.002894
1000:gen_thread:0:1:0.002896
1000:gen_thread:0:1:0.00289
1000:gen_thread:0:1:0.002913
1000:gen_thread:0:1:0.00291
1000:gen_thread:0:1:0.002921
1000:gen_thread:0:1:0.002912
1000:gen_thread:0:1:0.002836
1000:gen_thread:0:1:0.002942
1000:gen_thread:0:1:0.002858
1000:gen_thread:0:1:0.002836
1000:gen_thread:0:1:0.002945
1000:gen_thread:0:1:0.002865
1000:gen_thread:0:1:0.002916
1000:gen_thread:0:1:0.002861
10000:gen_thread:0:1:0.028342
10000:gen_thread:0:1:0.028241
10000:gen_thread:0:1:0.028311
10000:gen_thread:0:1:0.02846
10000:gen_thread:0:1:0.028139
10000:gen_thread:0:1:0.02824
10000:gen_thread:0:1:0.028308
10000:gen_thread:0:1:0.028244
10000:gen_thread:0:1:0.028239
10000:gen_thread:0:1:0.028261
10000:gen_thread:0:1:0.028135
10000:gen_thread:0:1:0.028236
10000:gen_thread:0:1:0.028242
10000:gen_thread:0:1:0.028287
10000:gen_thread:0:1:0.028297
10000:gen_thread:0:1:0.028441
10000:gen_thread:0:1:0.028189
10000:gen_thread:0:1:0.02845
10000:gen_thread:0:1:0.028484
10000:gen_thread:0:1:0.028458
100000:gen_thread:0:1:0.444505
100000:gen_thread:0:1:0.440334
100000:gen_thread:0:1:0.445155
100000:gen_thread:0:1:0.442666
100000:gen_thread:0:1:0.437641
100000:gen_thread:0:1:0.438417
100000:gen_thread:0:1:0.447416
100000:gen_thread:0:1:0.442382
100000:gen_thread:0:1:0.44735
100000:gen_thread:0:1:0.438667
100000:gen_thread:0:1:0.438098
100000:gen_thread:0:1:0.446092
100000:gen_thread:0:1:0.436995
100000:gen_thread:0:1:0.439775
100000:gen_thread:0:1:0.439127
100000:gen_thread:0:1:0.441563
100000:gen_thread:0:1:0.441381
100000:gen_thread:0:1:0.44484
100000:gen_thread:0:1:0.438376
100000:gen_thread:0:1:0.443273
1000000:gen_thread:0:1:4.47171
1000000:gen_thread:0:1:4.45547
1000000:gen_thread:0:1:4.46564
1000000:gen_thread:0:1:4.43925
1000000:gen_thread:0:1:4.38791
1000000:gen_thread:0:1:4.43617
1000000:gen_thread:0:1:4.40905
1000000:gen_thread:0:1:4.44285
1000000:gen_thread:0:1:4.46301
1000000:gen_thread:0:1:4.4393
1000000:gen_thread:0:1:4.44656
1000000:gen_thread:0:1:4.43744
1000000:gen_thread:0:1:4.41934
1000000:gen_thread:0:1:4.43899
1000000:gen_thread:0:1:4.43974
1000000:gen_thread:0:1:4.40119
1000000:gen_thread:0:1:4.44664
1000000:gen_thread:0:1:4.46293
1000000:gen_thread:0:1:4.43474
1000000:gen_thread:0:1:4.46982
10000000:gen_thread:0:1:51.3291
10000000:gen_thread:0:1:51.2703
10000000:gen_thread:0:1:51.3283
10000000:gen_thread:0:1:51.3051
10000000:gen_thread:0:1:51.3105
10000000:gen_thread:0:1:51.3646
10000000:gen_thread:0:1:51.379
10000000:gen_thread:0:1:51.3216
10000000:gen_thread:0:1:51.2945
10000000:gen_thread:0:1:51.3481
10000000:gen_thread:0:1:51.2353
10000000:gen_thread:0:1:51.2902
10000000:gen_thread:0:1:51.2597
10000000:gen_thread:0:1:51.2482
10000000:gen_thread:0:1:51.2768
10000000:gen_thread:0:1:51.2602
10000000:gen_thread:0:1:51.2952
10000000:gen_thread:0:1:51.3053
10000000:gen_thread:0:1:51.2716
10000000:gen_thread:0:1:51.2722

View File

@ -0,0 +1,120 @@
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
100:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
1000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
10000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
100000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
1000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:
10000000:omp:0:1:

View File

@ -0,0 +1,120 @@
100:seq:0:1:0.000702
100:seq:0:1:0.000648
100:seq:0:1:0.000605
100:seq:0:1:0.000607
100:seq:0:1:0.000605
100:seq:0:1:0.000565
100:seq:0:1:0.000553
100:seq:0:1:0.000531
100:seq:0:1:0.000496
100:seq:0:1:0.000498
100:seq:0:1:0.000488
100:seq:0:1:0.000489
100:seq:0:1:0.000488
100:seq:0:1:0.000489
100:seq:0:1:0.000498
100:seq:0:1:0.000501
100:seq:0:1:0.000499
100:seq:0:1:0.000489
100:seq:0:1:0.000488
100:seq:0:1:0.000499
1000:seq:0:1:0.004884
1000:seq:0:1:0.004593
1000:seq:0:1:0.004592
1000:seq:0:1:0.004609
1000:seq:0:1:0.00461
1000:seq:0:1:0.00461
1000:seq:0:1:0.004368
1000:seq:0:1:0.004374
1000:seq:0:1:0.004126
1000:seq:0:1:0.003942
1000:seq:0:1:0.003935
1000:seq:0:1:0.003939
1000:seq:0:1:0.003938
1000:seq:0:1:0.00394
1000:seq:0:1:0.003947
1000:seq:0:1:0.003931
1000:seq:0:1:0.00394
1000:seq:0:1:0.00394
1000:seq:0:1:0.003756
1000:seq:0:1:0.003602
10000:seq:0:1:0.035517
10000:seq:0:1:0.030188
10000:seq:0:1:0.025547
10000:seq:0:1:0.025902
10000:seq:0:1:0.025784
10000:seq:0:1:0.025808
10000:seq:0:1:0.025881
10000:seq:0:1:0.025648
10000:seq:0:1:0.025686
10000:seq:0:1:0.025715
10000:seq:0:1:0.025777
10000:seq:0:1:0.025904
10000:seq:0:1:0.025875
10000:seq:0:1:0.0258
10000:seq:0:1:0.025714
10000:seq:0:1:0.026042
10000:seq:0:1:0.025745
10000:seq:0:1:0.02583
10000:seq:0:1:0.025738
10000:seq:0:1:0.025787
100000:seq:0:1:0.42954
100000:seq:0:1:0.411981
100000:seq:0:1:0.407748
100000:seq:0:1:0.40925
100000:seq:0:1:0.407506
100000:seq:0:1:0.412128
100000:seq:0:1:0.397342
100000:seq:0:1:0.422122
100000:seq:0:1:0.410631
100000:seq:0:1:0.431113
100000:seq:0:1:0.413188
100000:seq:0:1:0.43012
100000:seq:0:1:0.409255
100000:seq:0:1:0.42213
100000:seq:0:1:0.420968
100000:seq:0:1:0.424702
100000:seq:0:1:0.399985
100000:seq:0:1:0.418013
100000:seq:0:1:0.407299
100000:seq:0:1:0.397699
1000000:seq:0:1:4.16503
1000000:seq:0:1:4.13727
1000000:seq:0:1:4.13267
1000000:seq:0:1:4.11734
1000000:seq:0:1:4.13344
1000000:seq:0:1:4.12705
1000000:seq:0:1:4.13222
1000000:seq:0:1:4.09604
1000000:seq:0:1:4.10825
1000000:seq:0:1:4.14909
1000000:seq:0:1:4.11692
1000000:seq:0:1:4.1556
1000000:seq:0:1:4.09616
1000000:seq:0:1:4.1229
1000000:seq:0:1:4.08094
1000000:seq:0:1:4.12582
1000000:seq:0:1:4.10664
1000000:seq:0:1:4.08565
1000000:seq:0:1:4.07787
1000000:seq:0:1:4.1123
10000000:seq:0:1:47.6512
10000000:seq:0:1:47.7135
10000000:seq:0:1:47.7124
10000000:seq:0:1:47.7084
10000000:seq:0:1:47.6651
10000000:seq:0:1:47.7006
10000000:seq:0:1:47.6995
10000000:seq:0:1:47.7261
10000000:seq:0:1:47.6755
10000000:seq:0:1:47.6941
10000000:seq:0:1:47.7087
10000000:seq:0:1:47.6559
10000000:seq:0:1:47.7254
10000000:seq:0:1:47.7034
10000000:seq:0:1:47.7224
10000000:seq:0:1:47.6909
10000000:seq:0:1:47.6694
10000000:seq:0:1:47.7375
10000000:seq:0:1:47.7193
10000000:seq:0:1:47.6518

View File

@ -0,0 +1,120 @@
100:gen_omp:1:10:0.101087
100:gen_omp:1:10:0.097169
100:gen_omp:1:10:0.098206
100:gen_omp:1:10:0.114494
100:gen_omp:1:10:0.108025
100:gen_omp:1:10:0.094104
100:gen_omp:1:10:0.094741
100:gen_omp:1:10:0.096361
100:gen_omp:1:10:0.115469
100:gen_omp:1:10:0.093199
100:gen_omp:1:10:0.100274
100:gen_omp:1:10:0.086921
100:gen_omp:1:10:0.10751
100:gen_omp:1:10:0.110748
100:gen_omp:1:10:0.100916
100:gen_omp:1:10:0.099583
100:gen_omp:1:10:0.089324
100:gen_omp:1:10:0.121943
100:gen_omp:1:10:0.110185
100:gen_omp:1:10:0.098391
1000:gen_omp:1:10:0.097776
1000:gen_omp:1:10:0.150863
1000:gen_omp:1:10:0.096421
1000:gen_omp:1:10:0.119838
1000:gen_omp:1:10:0.096549
1000:gen_omp:1:10:0.113192
1000:gen_omp:1:10:0.12406
1000:gen_omp:1:10:0.112196
1000:gen_omp:1:10:0.130762
1000:gen_omp:1:10:0.116279
1000:gen_omp:1:10:0.113826
1000:gen_omp:1:10:0.137259
1000:gen_omp:1:10:0.1619
1000:gen_omp:1:10:0.12076
1000:gen_omp:1:10:0.124704
1000:gen_omp:1:10:0.094925
1000:gen_omp:1:10:0.129562
1000:gen_omp:1:10:0.098702
1000:gen_omp:1:10:0.112263
1000:gen_omp:1:10:0.097239
10000:gen_omp:1:10:0.25413
10000:gen_omp:1:10:0.22921
10000:gen_omp:1:10:0.238288
10000:gen_omp:1:10:0.297489
10000:gen_omp:1:10:0.270222
10000:gen_omp:1:10:0.283275
10000:gen_omp:1:10:0.24779
10000:gen_omp:1:10:0.244005
10000:gen_omp:1:10:0.305033
10000:gen_omp:1:10:0.281762
10000:gen_omp:1:10:0.303371
10000:gen_omp:1:10:0.290533
10000:gen_omp:1:10:0.257339
10000:gen_omp:1:10:0.254889
10000:gen_omp:1:10:0.301489
10000:gen_omp:1:10:0.241152
10000:gen_omp:1:10:0.273733
10000:gen_omp:1:10:0.290319
10000:gen_omp:1:10:0.275278
10000:gen_omp:1:10:0.246936
100000:gen_omp:1:10:1.59966
100000:gen_omp:1:10:1.76675
100000:gen_omp:1:10:1.67897
100000:gen_omp:1:10:1.71723
100000:gen_omp:1:10:1.74277
100000:gen_omp:1:10:1.49571
100000:gen_omp:1:10:1.75609
100000:gen_omp:1:10:1.73858
100000:gen_omp:1:10:1.70807
100000:gen_omp:1:10:1.58917
100000:gen_omp:1:10:1.43222
100000:gen_omp:1:10:1.75186
100000:gen_omp:1:10:1.73095
100000:gen_omp:1:10:1.74668
100000:gen_omp:1:10:1.20267
100000:gen_omp:1:10:1.65562
100000:gen_omp:1:10:1.70633
100000:gen_omp:1:10:1.62153
100000:gen_omp:1:10:1.61186
100000:gen_omp:1:10:1.56865
1000000:gen_omp:1:10:7.25802
1000000:gen_omp:1:10:6.85848
1000000:gen_omp:1:10:6.73594
1000000:gen_omp:1:10:6.73132
1000000:gen_omp:1:10:6.72312
1000000:gen_omp:1:10:6.93703
1000000:gen_omp:1:10:6.70742
1000000:gen_omp:1:10:7.01789
1000000:gen_omp:1:10:6.73248
1000000:gen_omp:1:10:6.79275
1000000:gen_omp:1:10:6.94227
1000000:gen_omp:1:10:6.90957
1000000:gen_omp:1:10:7.03512
1000000:gen_omp:1:10:6.85644
1000000:gen_omp:1:10:6.78067
1000000:gen_omp:1:10:6.61205
1000000:gen_omp:1:10:6.91761
1000000:gen_omp:1:10:6.96209
1000000:gen_omp:1:10:6.81793
1000000:gen_omp:1:10:6.83243
10000000:gen_omp:1:10:71.8134
10000000:gen_omp:1:10:70.9502
10000000:gen_omp:1:10:71.5539
10000000:gen_omp:1:10:71.9385
10000000:gen_omp:1:10:71.3884
10000000:gen_omp:1:10:70.8512
10000000:gen_omp:1:10:71.3579
10000000:gen_omp:1:10:71.7588
10000000:gen_omp:1:10:70.6748
10000000:gen_omp:1:10:70.6236
10000000:gen_omp:1:10:70.9127
10000000:gen_omp:1:10:71.0622
10000000:gen_omp:1:10:70.5393
10000000:gen_omp:1:10:71.2986
10000000:gen_omp:1:10:71.4571
10000000:gen_omp:1:10:71.7149
10000000:gen_omp:1:10:72.0044
10000000:gen_omp:1:10:71.2259
10000000:gen_omp:1:10:71.0754
10000000:gen_omp:1:10:71.0774

View File

@ -0,0 +1,120 @@
100:gen_thread:1:10:0.489089
100:gen_thread:1:10:0.484901
100:gen_thread:1:10:0.449464
100:gen_thread:1:10:0.515881
100:gen_thread:1:10:0.539096
100:gen_thread:1:10:0.492682
100:gen_thread:1:10:0.50523
100:gen_thread:1:10:0.502221
100:gen_thread:1:10:0.494532
100:gen_thread:1:10:0.544472
100:gen_thread:1:10:0.55195
100:gen_thread:1:10:0.510672
100:gen_thread:1:10:0.541785
100:gen_thread:1:10:0.529818
100:gen_thread:1:10:0.526917
100:gen_thread:1:10:0.468789
100:gen_thread:1:10:0.533998
100:gen_thread:1:10:0.522947
100:gen_thread:1:10:1.14107
100:gen_thread:1:10:0.530152
1000:gen_thread:1:10:0.497265
1000:gen_thread:1:10:0.482318
1000:gen_thread:1:10:0.519917
1000:gen_thread:1:10:0.514017
1000:gen_thread:1:10:0.530782
1000:gen_thread:1:10:0.449165
1000:gen_thread:1:10:0.503439
1000:gen_thread:1:10:1.17057
1000:gen_thread:1:10:0.516961
1000:gen_thread:1:10:0.473196
1000:gen_thread:1:10:0.51244
1000:gen_thread:1:10:0.533413
1000:gen_thread:1:10:0.564223
1000:gen_thread:1:10:0.493889
1000:gen_thread:1:10:0.547933
1000:gen_thread:1:10:0.550728
1000:gen_thread:1:10:0.542859
1000:gen_thread:1:10:0.495814
1000:gen_thread:1:10:0.464803
1000:gen_thread:1:10:0.482201
10000:gen_thread:1:10:0.559238
10000:gen_thread:1:10:0.53914
10000:gen_thread:1:10:0.593385
10000:gen_thread:1:10:0.619706
10000:gen_thread:1:10:0.561478
10000:gen_thread:1:10:0.567449
10000:gen_thread:1:10:0.534928
10000:gen_thread:1:10:0.530396
10000:gen_thread:1:10:0.575169
10000:gen_thread:1:10:0.591193
10000:gen_thread:1:10:0.532356
10000:gen_thread:1:10:0.578627
10000:gen_thread:1:10:0.589939
10000:gen_thread:1:10:0.577829
10000:gen_thread:1:10:0.56926
10000:gen_thread:1:10:0.570638
10000:gen_thread:1:10:0.537038
10000:gen_thread:1:10:0.554792
10000:gen_thread:1:10:0.541288
10000:gen_thread:1:10:0.536449
100000:gen_thread:1:10:1.5212
100000:gen_thread:1:10:1.49002
100000:gen_thread:1:10:1.89255
100000:gen_thread:1:10:2.12619
100000:gen_thread:1:10:2.07761
100000:gen_thread:1:10:2.11441
100000:gen_thread:1:10:2.06008
100000:gen_thread:1:10:2.07424
100000:gen_thread:1:10:3.12799
100000:gen_thread:1:10:2.13574
100000:gen_thread:1:10:2.20042
100000:gen_thread:1:10:1.99072
100000:gen_thread:1:10:1.66163
100000:gen_thread:1:10:1.61192
100000:gen_thread:1:10:1.63037
100000:gen_thread:1:10:1.5852
100000:gen_thread:1:10:1.59292
100000:gen_thread:1:10:1.63487
100000:gen_thread:1:10:1.58322
100000:gen_thread:1:10:1.59908
1000000:gen_thread:1:10:7.27886
1000000:gen_thread:1:10:7.13648
1000000:gen_thread:1:10:7.17099
1000000:gen_thread:1:10:7.16655
1000000:gen_thread:1:10:7.15417
1000000:gen_thread:1:10:7.27603
1000000:gen_thread:1:10:7.03377
1000000:gen_thread:1:10:7.25692
1000000:gen_thread:1:10:7.05626
1000000:gen_thread:1:10:7.18631
1000000:gen_thread:1:10:7.06993
1000000:gen_thread:1:10:7.02751
1000000:gen_thread:1:10:7.62993
1000000:gen_thread:1:10:7.16282
1000000:gen_thread:1:10:7.1116
1000000:gen_thread:1:10:7.09249
1000000:gen_thread:1:10:7.27663
1000000:gen_thread:1:10:7.27536
1000000:gen_thread:1:10:7.06554
1000000:gen_thread:1:10:7.16305
10000000:gen_thread:1:10:92.5227
10000000:gen_thread:1:10:91.7013
10000000:gen_thread:1:10:90.4521
10000000:gen_thread:1:10:92.8809
10000000:gen_thread:1:10:97.4181
10000000:gen_thread:1:10:93.735
10000000:gen_thread:1:10:90.9324
10000000:gen_thread:1:10:90.3289
10000000:gen_thread:1:10:92.9111
10000000:gen_thread:1:10:93.702
10000000:gen_thread:1:10:94.7342
10000000:gen_thread:1:10:94.041
10000000:gen_thread:1:10:93.3382
10000000:gen_thread:1:10:93.77
10000000:gen_thread:1:10:94.0286
10000000:gen_thread:1:10:92.2787
10000000:gen_thread:1:10:92.3129
10000000:gen_thread:1:10:94.2986
10000000:gen_thread:1:10:94.0799
10000000:gen_thread:1:10:91.896

View File

@ -0,0 +1,120 @@
100:omp:1:10:0.158905
100:omp:1:10:0.136951
100:omp:1:10:0.154255
100:omp:1:10:0.111766
100:omp:1:10:0.134443
100:omp:1:10:0.143829
100:omp:1:10:0.155767
100:omp:1:10:0.160847
100:omp:1:10:0.125402
100:omp:1:10:0.148734
100:omp:1:10:0.135119
100:omp:1:10:0.166325
100:omp:1:10:0.162321
100:omp:1:10:0.139923
100:omp:1:10:0.16608
100:omp:1:10:0.15741
100:omp:1:10:0.144954
100:omp:1:10:0.159703
100:omp:1:10:0.153871
100:omp:1:10:0.141928
1000:omp:1:10:0.168716
1000:omp:1:10:0.173695
1000:omp:1:10:0.173735
1000:omp:1:10:0.152238
1000:omp:1:10:0.158262
1000:omp:1:10:0.155191
1000:omp:1:10:0.180065
1000:omp:1:10:0.16778
1000:omp:1:10:0.185061
1000:omp:1:10:0.150515
1000:omp:1:10:0.16743
1000:omp:1:10:0.175217
1000:omp:1:10:0.168251
1000:omp:1:10:0.17887
1000:omp:1:10:0.178586
1000:omp:1:10:0.173903
1000:omp:1:10:0.165346
1000:omp:1:10:0.161748
1000:omp:1:10:0.139028
1000:omp:1:10:0.164147
10000:omp:1:10:0.237816
10000:omp:1:10:0.224596
10000:omp:1:10:0.252579
10000:omp:1:10:0.201322
10000:omp:1:10:0.251783
10000:omp:1:10:0.189829
10000:omp:1:10:0.23826
10000:omp:1:10:0.244165
10000:omp:1:10:0.265836
10000:omp:1:10:0.233283
10000:omp:1:10:0.243966
10000:omp:1:10:0.23483
10000:omp:1:10:0.231675
10000:omp:1:10:0.232354
10000:omp:1:10:0.21356
10000:omp:1:10:0.245255
10000:omp:1:10:0.197557
10000:omp:1:10:0.187149
10000:omp:1:10:0.185527
10000:omp:1:10:0.265473
100000:omp:1:10:1.49216
100000:omp:1:10:1.56037
100000:omp:1:10:1.53133
100000:omp:1:10:1.40416
100000:omp:1:10:1.51749
100000:omp:1:10:1.59062
100000:omp:1:10:1.49971
100000:omp:1:10:1.52968
100000:omp:1:10:1.4093
100000:omp:1:10:1.52417
100000:omp:1:10:1.52609
100000:omp:1:10:1.59142
100000:omp:1:10:1.52817
100000:omp:1:10:1.40419
100000:omp:1:10:1.56707
100000:omp:1:10:1.52699
100000:omp:1:10:1.58163
100000:omp:1:10:1.57227
100000:omp:1:10:1.09436
100000:omp:1:10:1.4161
1000000:omp:1:10:6.49022
1000000:omp:1:10:6.49684
1000000:omp:1:10:6.19211
1000000:omp:1:10:6.2164
1000000:omp:1:10:6.0142
1000000:omp:1:10:6.29032
1000000:omp:1:10:6.05554
1000000:omp:1:10:6.30564
1000000:omp:1:10:6.02582
1000000:omp:1:10:6.18334
1000000:omp:1:10:6.12462
1000000:omp:1:10:6.331
1000000:omp:1:10:6.54554
1000000:omp:1:10:6.27763
1000000:omp:1:10:6.42946
1000000:omp:1:10:6.32297
1000000:omp:1:10:6.18228
1000000:omp:1:10:6.21694
1000000:omp:1:10:6.07796
1000000:omp:1:10:6.25706
10000000:omp:1:10:65.8798
10000000:omp:1:10:65.9703
10000000:omp:1:10:65.9784
10000000:omp:1:10:66.172
10000000:omp:1:10:66.0777
10000000:omp:1:10:65.9703
10000000:omp:1:10:65.5313
10000000:omp:1:10:65.2976
10000000:omp:1:10:66.1993
10000000:omp:1:10:66.1376
10000000:omp:1:10:65.9767
10000000:omp:1:10:65.4646
10000000:omp:1:10:65.9091
10000000:omp:1:10:66.1048
10000000:omp:1:10:65.8718
10000000:omp:1:10:66.1431
10000000:omp:1:10:65.4355
10000000:omp:1:10:66.2333
10000000:omp:1:10:66.1947
10000000:omp:1:10:65.5948

View File

@ -0,0 +1,120 @@
100:seq:1:10:0.000253
100:seq:1:10:0.000253
100:seq:1:10:0.000254
100:seq:1:10:0.000253
100:seq:1:10:0.000254
100:seq:1:10:0.000252
100:seq:1:10:0.000282
100:seq:1:10:0.000254
100:seq:1:10:0.000254
100:seq:1:10:0.000259
100:seq:1:10:0.000252
100:seq:1:10:0.000252
100:seq:1:10:0.000272
100:seq:1:10:0.000253
100:seq:1:10:0.000253
100:seq:1:10:0.000255
100:seq:1:10:0.00025
100:seq:1:10:0.00026
100:seq:1:10:0.000255
100:seq:1:10:0.000282
1000:seq:1:10:0.002481
1000:seq:1:10:0.002482
1000:seq:1:10:0.002483
1000:seq:1:10:0.002485
1000:seq:1:10:0.002534
1000:seq:1:10:0.002496
1000:seq:1:10:0.002491
1000:seq:1:10:0.002486
1000:seq:1:10:0.002538
1000:seq:1:10:0.002482
1000:seq:1:10:0.002495
1000:seq:1:10:0.002566
1000:seq:1:10:0.00248
1000:seq:1:10:0.002552
1000:seq:1:10:0.002538
1000:seq:1:10:0.002495
1000:seq:1:10:0.002494
1000:seq:1:10:0.002494
1000:seq:1:10:0.002544
1000:seq:1:10:0.002491
10000:seq:1:10:0.025741
10000:seq:1:10:0.025448
10000:seq:1:10:0.025587
10000:seq:1:10:0.025438
10000:seq:1:10:0.02532
10000:seq:1:10:0.025321
10000:seq:1:10:0.025352
10000:seq:1:10:0.025439
10000:seq:1:10:0.025375
10000:seq:1:10:0.025426
10000:seq:1:10:0.025383
10000:seq:1:10:0.025398
10000:seq:1:10:0.025278
10000:seq:1:10:0.025359
10000:seq:1:10:0.025319
10000:seq:1:10:0.025369
10000:seq:1:10:0.025595
10000:seq:1:10:0.025467
10000:seq:1:10:0.025426
10000:seq:1:10:0.025325
100000:seq:1:10:0.538642
100000:seq:1:10:0.545321
100000:seq:1:10:0.53512
100000:seq:1:10:0.541581
100000:seq:1:10:0.541075
100000:seq:1:10:0.541886
100000:seq:1:10:0.540317
100000:seq:1:10:0.536628
100000:seq:1:10:0.538018
100000:seq:1:10:0.534953
100000:seq:1:10:0.53938
100000:seq:1:10:0.538569
100000:seq:1:10:0.534336
100000:seq:1:10:0.535816
100000:seq:1:10:0.541159
100000:seq:1:10:0.533009
100000:seq:1:10:0.537458
100000:seq:1:10:0.541901
100000:seq:1:10:0.544131
100000:seq:1:10:0.536591
1000000:seq:1:10:5.40183
1000000:seq:1:10:5.39608
1000000:seq:1:10:5.3909
1000000:seq:1:10:5.39215
1000000:seq:1:10:5.40603
1000000:seq:1:10:5.39352
1000000:seq:1:10:5.41024
1000000:seq:1:10:5.39501
1000000:seq:1:10:5.36135
1000000:seq:1:10:5.38862
1000000:seq:1:10:5.38217
1000000:seq:1:10:5.43014
1000000:seq:1:10:5.38762
1000000:seq:1:10:5.40282
1000000:seq:1:10:5.38183
1000000:seq:1:10:5.37998
1000000:seq:1:10:5.38825
1000000:seq:1:10:5.36187
1000000:seq:1:10:5.40956
1000000:seq:1:10:5.35818
10000000:seq:1:10:61.366
10000000:seq:1:10:61.2606
10000000:seq:1:10:61.3849
10000000:seq:1:10:61.3032
10000000:seq:1:10:61.3986
10000000:seq:1:10:61.2127
10000000:seq:1:10:61.3154
10000000:seq:1:10:61.2465
10000000:seq:1:10:61.3881
10000000:seq:1:10:61.231
10000000:seq:1:10:61.3282
10000000:seq:1:10:61.2662
10000000:seq:1:10:61.3281
10000000:seq:1:10:61.245
10000000:seq:1:10:61.2781
10000000:seq:1:10:61.1872
10000000:seq:1:10:61.2639
10000000:seq:1:10:61.1967
10000000:seq:1:10:61.3175
10000000:seq:1:10:61.2251

View File

@ -0,0 +1,120 @@
100:gen_omp:1:12:0.116935
100:gen_omp:1:12:0.120728
100:gen_omp:1:12:0.106086
100:gen_omp:1:12:0.136185
100:gen_omp:1:12:0.123286
100:gen_omp:1:12:0.162699
100:gen_omp:1:12:0.117515
100:gen_omp:1:12:0.150987
100:gen_omp:1:12:0.189968
100:gen_omp:1:12:0.176255
100:gen_omp:1:12:0.16985
100:gen_omp:1:12:0.158726
100:gen_omp:1:12:0.163695
100:gen_omp:1:12:0.155006
100:gen_omp:1:12:0.165388
100:gen_omp:1:12:0.157282
100:gen_omp:1:12:0.169109
100:gen_omp:1:12:0.172177
100:gen_omp:1:12:0.162793
100:gen_omp:1:12:0.127524
1000:gen_omp:1:12:0.194659
1000:gen_omp:1:12:0.169375
1000:gen_omp:1:12:0.139233
1000:gen_omp:1:12:0.200703
1000:gen_omp:1:12:0.14836
1000:gen_omp:1:12:0.179403
1000:gen_omp:1:12:0.195429
1000:gen_omp:1:12:0.196142
1000:gen_omp:1:12:0.15725
1000:gen_omp:1:12:0.158479
1000:gen_omp:1:12:0.211059
1000:gen_omp:1:12:0.163785
1000:gen_omp:1:12:0.205301
1000:gen_omp:1:12:0.171569
1000:gen_omp:1:12:0.212169
1000:gen_omp:1:12:0.198266
1000:gen_omp:1:12:0.172672
1000:gen_omp:1:12:0.194303
1000:gen_omp:1:12:0.168983
1000:gen_omp:1:12:0.200807
10000:gen_omp:1:12:0.2438
10000:gen_omp:1:12:0.30915
10000:gen_omp:1:12:0.262944
10000:gen_omp:1:12:0.257088
10000:gen_omp:1:12:0.23366
10000:gen_omp:1:12:0.271642
10000:gen_omp:1:12:0.259531
10000:gen_omp:1:12:0.256281
10000:gen_omp:1:12:0.330663
10000:gen_omp:1:12:0.244255
10000:gen_omp:1:12:0.299726
10000:gen_omp:1:12:0.250854
10000:gen_omp:1:12:0.277871
10000:gen_omp:1:12:0.253399
10000:gen_omp:1:12:0.325553
10000:gen_omp:1:12:0.303454
10000:gen_omp:1:12:0.320191
10000:gen_omp:1:12:0.305361
10000:gen_omp:1:12:0.262682
10000:gen_omp:1:12:0.292835
100000:gen_omp:1:12:1.38219
100000:gen_omp:1:12:1.56744
100000:gen_omp:1:12:1.64431
100000:gen_omp:1:12:1.66138
100000:gen_omp:1:12:1.63523
100000:gen_omp:1:12:1.42683
100000:gen_omp:1:12:1.52547
100000:gen_omp:1:12:1.59539
100000:gen_omp:1:12:1.6279
100000:gen_omp:1:12:1.59005
100000:gen_omp:1:12:1.57813
100000:gen_omp:1:12:1.63168
100000:gen_omp:1:12:1.47915
100000:gen_omp:1:12:1.6783
100000:gen_omp:1:12:1.09709
100000:gen_omp:1:12:1.70039
100000:gen_omp:1:12:1.63107
100000:gen_omp:1:12:1.58926
100000:gen_omp:1:12:1.6127
100000:gen_omp:1:12:1.53704
1000000:gen_omp:1:12:7.24056
1000000:gen_omp:1:12:6.85732
1000000:gen_omp:1:12:6.90533
1000000:gen_omp:1:12:6.74423
1000000:gen_omp:1:12:7.04829
1000000:gen_omp:1:12:7.37732
1000000:gen_omp:1:12:6.92788
1000000:gen_omp:1:12:7.33178
1000000:gen_omp:1:12:7.15979
1000000:gen_omp:1:12:6.99061
1000000:gen_omp:1:12:7.01632
1000000:gen_omp:1:12:7.00058
1000000:gen_omp:1:12:6.76144
1000000:gen_omp:1:12:7.05508
1000000:gen_omp:1:12:6.79351
1000000:gen_omp:1:12:6.63542
1000000:gen_omp:1:12:6.7649
1000000:gen_omp:1:12:6.88964
1000000:gen_omp:1:12:6.85106
1000000:gen_omp:1:12:6.98138
10000000:gen_omp:1:12:70.146
10000000:gen_omp:1:12:70.0103
10000000:gen_omp:1:12:70.1023
10000000:gen_omp:1:12:70.0037
10000000:gen_omp:1:12:69.9819
10000000:gen_omp:1:12:70.133
10000000:gen_omp:1:12:70.0896
10000000:gen_omp:1:12:70.1337
10000000:gen_omp:1:12:70.173
10000000:gen_omp:1:12:70.346
10000000:gen_omp:1:12:70.4144
10000000:gen_omp:1:12:70.3764
10000000:gen_omp:1:12:70.1611
10000000:gen_omp:1:12:70.3899
10000000:gen_omp:1:12:70.4496
10000000:gen_omp:1:12:70.2059
10000000:gen_omp:1:12:69.8352
10000000:gen_omp:1:12:70.2119
10000000:gen_omp:1:12:69.9214
10000000:gen_omp:1:12:70.0788

View File

@ -0,0 +1,120 @@
100:gen_thread:1:12:0.593512
100:gen_thread:1:12:0.608002
100:gen_thread:1:12:0.630435
100:gen_thread:1:12:0.676025
100:gen_thread:1:12:0.608014
100:gen_thread:1:12:0.600465
100:gen_thread:1:12:0.652704
100:gen_thread:1:12:0.675291
100:gen_thread:1:12:0.649477
100:gen_thread:1:12:0.656121
100:gen_thread:1:12:0.675013
100:gen_thread:1:12:0.590834
100:gen_thread:1:12:0.533447
100:gen_thread:1:12:0.685446
100:gen_thread:1:12:0.589158
100:gen_thread:1:12:0.593077
100:gen_thread:1:12:0.612163
100:gen_thread:1:12:0.655336
100:gen_thread:1:12:0.6962
100:gen_thread:1:12:0.653921
1000:gen_thread:1:12:0.630414
1000:gen_thread:1:12:0.584122
1000:gen_thread:1:12:0.623846
1000:gen_thread:1:12:0.672149
1000:gen_thread:1:12:0.631598
1000:gen_thread:1:12:0.686463
1000:gen_thread:1:12:0.598372
1000:gen_thread:1:12:0.642824
1000:gen_thread:1:12:0.588275
1000:gen_thread:1:12:0.63929
1000:gen_thread:1:12:0.661527
1000:gen_thread:1:12:0.577798
1000:gen_thread:1:12:0.676915
1000:gen_thread:1:12:0.626447
1000:gen_thread:1:12:0.702965
1000:gen_thread:1:12:0.66148
1000:gen_thread:1:12:0.615553
1000:gen_thread:1:12:0.652267
1000:gen_thread:1:12:0.536963
1000:gen_thread:1:12:0.633894
10000:gen_thread:1:12:0.652137
10000:gen_thread:1:12:0.648233
10000:gen_thread:1:12:0.683418
10000:gen_thread:1:12:0.6256
10000:gen_thread:1:12:0.655536
10000:gen_thread:1:12:0.676338
10000:gen_thread:1:12:0.666457
10000:gen_thread:1:12:0.728042
10000:gen_thread:1:12:0.699454
10000:gen_thread:1:12:0.702943
10000:gen_thread:1:12:0.649094
10000:gen_thread:1:12:0.628903
10000:gen_thread:1:12:0.685317
10000:gen_thread:1:12:0.637943
10000:gen_thread:1:12:0.672884
10000:gen_thread:1:12:0.696593
10000:gen_thread:1:12:0.728028
10000:gen_thread:1:12:0.666973
10000:gen_thread:1:12:0.722154
10000:gen_thread:1:12:0.677001
100000:gen_thread:1:12:1.26661
100000:gen_thread:1:12:1.20304
100000:gen_thread:1:12:1.21847
100000:gen_thread:1:12:1.2136
100000:gen_thread:1:12:1.21074
100000:gen_thread:1:12:1.19979
100000:gen_thread:1:12:1.20166
100000:gen_thread:1:12:1.22469
100000:gen_thread:1:12:1.20296
100000:gen_thread:1:12:1.21465
100000:gen_thread:1:12:1.20438
100000:gen_thread:1:12:1.21016
100000:gen_thread:1:12:1.1926
100000:gen_thread:1:12:1.20739
100000:gen_thread:1:12:1.20339
100000:gen_thread:1:12:1.20555
100000:gen_thread:1:12:1.20052
100000:gen_thread:1:12:1.20276
100000:gen_thread:1:12:1.19934
100000:gen_thread:1:12:1.20446
1000000:gen_thread:1:12:7.38307
1000000:gen_thread:1:12:7.47861
1000000:gen_thread:1:12:7.37652
1000000:gen_thread:1:12:7.60421
1000000:gen_thread:1:12:7.69283
1000000:gen_thread:1:12:7.38403
1000000:gen_thread:1:12:7.52306
1000000:gen_thread:1:12:7.37794
1000000:gen_thread:1:12:7.24099
1000000:gen_thread:1:12:7.38732
1000000:gen_thread:1:12:7.4257
1000000:gen_thread:1:12:7.56674
1000000:gen_thread:1:12:7.07703
1000000:gen_thread:1:12:7.27232
1000000:gen_thread:1:12:7.30237
1000000:gen_thread:1:12:7.23214
1000000:gen_thread:1:12:7.47578
1000000:gen_thread:1:12:7.46766
1000000:gen_thread:1:12:7.40042
1000000:gen_thread:1:12:7.32456
10000000:gen_thread:1:12:95.0211
10000000:gen_thread:1:12:97.5013
10000000:gen_thread:1:12:94.053
10000000:gen_thread:1:12:95.2345
10000000:gen_thread:1:12:96.1898
10000000:gen_thread:1:12:93.6081
10000000:gen_thread:1:12:94.1987
10000000:gen_thread:1:12:93.836
10000000:gen_thread:1:12:94.4782
10000000:gen_thread:1:12:92.7921
10000000:gen_thread:1:12:94.159
10000000:gen_thread:1:12:92.7062
10000000:gen_thread:1:12:95.2957
10000000:gen_thread:1:12:95.6518
10000000:gen_thread:1:12:95.1964
10000000:gen_thread:1:12:94.2001
10000000:gen_thread:1:12:92.6706
10000000:gen_thread:1:12:93.4296
10000000:gen_thread:1:12:92.3483
10000000:gen_thread:1:12:94.184

View File

@ -0,0 +1,120 @@
100:omp:1:12:0.182653
100:omp:1:12:0.16692
100:omp:1:12:0.142187
100:omp:1:12:0.183753
100:omp:1:12:0.157897
100:omp:1:12:0.150709
100:omp:1:12:0.168619
100:omp:1:12:0.135863
100:omp:1:12:0.141504
100:omp:1:12:0.174071
100:omp:1:12:0.165098
100:omp:1:12:0.157305
100:omp:1:12:0.161493
100:omp:1:12:0.153727
100:omp:1:12:0.156836
100:omp:1:12:0.164739
100:omp:1:12:0.166444
100:omp:1:12:0.148954
100:omp:1:12:0.174641
100:omp:1:12:0.181604
1000:omp:1:12:0.17843
1000:omp:1:12:0.17382
1000:omp:1:12:0.154678
1000:omp:1:12:0.193041
1000:omp:1:12:0.193143
1000:omp:1:12:0.160463
1000:omp:1:12:0.164372
1000:omp:1:12:0.188442
1000:omp:1:12:0.160525
1000:omp:1:12:0.169923
1000:omp:1:12:0.173117
1000:omp:1:12:0.183706
1000:omp:1:12:0.17386
1000:omp:1:12:0.18144
1000:omp:1:12:0.190189
1000:omp:1:12:0.180236
1000:omp:1:12:0.165186
1000:omp:1:12:0.17201
1000:omp:1:12:0.169832
1000:omp:1:12:0.172702
10000:omp:1:12:0.216488
10000:omp:1:12:0.213775
10000:omp:1:12:0.255725
10000:omp:1:12:0.297517
10000:omp:1:12:0.274861
10000:omp:1:12:0.270276
10000:omp:1:12:0.255845
10000:omp:1:12:0.21861
10000:omp:1:12:0.188171
10000:omp:1:12:0.203294
10000:omp:1:12:0.213854
10000:omp:1:12:0.236941
10000:omp:1:12:0.274676
10000:omp:1:12:0.296327
10000:omp:1:12:0.24805
10000:omp:1:12:0.284474
10000:omp:1:12:0.231534
10000:omp:1:12:0.234849
10000:omp:1:12:0.282692
10000:omp:1:12:0.286112
100000:omp:1:12:1.50594
100000:omp:1:12:1.47868
100000:omp:1:12:1.46017
100000:omp:1:12:1.4138
100000:omp:1:12:1.46592
100000:omp:1:12:1.46003
100000:omp:1:12:1.46993
100000:omp:1:12:1.47481
100000:omp:1:12:1.23891
100000:omp:1:12:1.51564
100000:omp:1:12:1.51569
100000:omp:1:12:1.42421
100000:omp:1:12:1.41455
100000:omp:1:12:1.3238
100000:omp:1:12:1.52707
100000:omp:1:12:1.45243
100000:omp:1:12:1.49779
100000:omp:1:12:1.441
100000:omp:1:12:1.28629
100000:omp:1:12:1.51135
1000000:omp:1:12:6.56374
1000000:omp:1:12:6.27654
1000000:omp:1:12:6.04574
1000000:omp:1:12:6.28686
1000000:omp:1:12:6.14969
1000000:omp:1:12:6.6442
1000000:omp:1:12:6.51441
1000000:omp:1:12:6.48977
1000000:omp:1:12:6.6669
1000000:omp:1:12:6.5187
1000000:omp:1:12:6.5559
1000000:omp:1:12:6.39489
1000000:omp:1:12:6.28953
1000000:omp:1:12:6.66885
1000000:omp:1:12:6.42049
1000000:omp:1:12:6.08862
1000000:omp:1:12:6.43063
1000000:omp:1:12:6.25476
1000000:omp:1:12:6.44866
1000000:omp:1:12:6.18695
10000000:omp:1:12:65.7061
10000000:omp:1:12:65.6442
10000000:omp:1:12:65.7472
10000000:omp:1:12:65.6474
10000000:omp:1:12:65.8021
10000000:omp:1:12:65.8112
10000000:omp:1:12:65.8712
10000000:omp:1:12:65.6715
10000000:omp:1:12:65.9282
10000000:omp:1:12:65.316
10000000:omp:1:12:65.6144
10000000:omp:1:12:65.7877
10000000:omp:1:12:65.8363
10000000:omp:1:12:65.7193
10000000:omp:1:12:65.8714
10000000:omp:1:12:65.6617
10000000:omp:1:12:66.0291
10000000:omp:1:12:65.6189
10000000:omp:1:12:65.5791
10000000:omp:1:12:65.9151

View File

@ -0,0 +1,120 @@
100:seq:1:12:0.000705
100:seq:1:12:0.00065
100:seq:1:12:0.000597
100:seq:1:12:0.000593
100:seq:1:12:0.000606
100:seq:1:12:0.000556
100:seq:1:12:0.000552
100:seq:1:12:0.000552
100:seq:1:12:0.000566
100:seq:1:12:0.000566
100:seq:1:12:0.000568
100:seq:1:12:0.000566
100:seq:1:12:0.000568
100:seq:1:12:0.000566
100:seq:1:12:0.000552
100:seq:1:12:0.000565
100:seq:1:12:0.00057
100:seq:1:12:0.000566
100:seq:1:12:0.000532
100:seq:1:12:0.000522
1000:seq:1:12:0.005152
1000:seq:1:12:0.005145
1000:seq:1:12:0.00514
1000:seq:1:12:0.005136
1000:seq:1:12:0.005137
1000:seq:1:12:0.00483
1000:seq:1:12:0.004831
1000:seq:1:12:0.004575
1000:seq:1:12:0.004568
1000:seq:1:12:0.004579
1000:seq:1:12:0.004573
1000:seq:1:12:0.004553
1000:seq:1:12:0.006859
1000:seq:1:12:0.006853
1000:seq:1:12:0.00632
1000:seq:1:12:0.00588
1000:seq:1:12:0.005876
1000:seq:1:12:0.005877
1000:seq:1:12:0.005877
1000:seq:1:12:0.005876
10000:seq:1:12:0.048636
10000:seq:1:12:0.038665
10000:seq:1:12:0.03077
10000:seq:1:12:0.025523
10000:seq:1:12:0.025385
10000:seq:1:12:0.025442
10000:seq:1:12:0.02534
10000:seq:1:12:0.025357
10000:seq:1:12:0.025506
10000:seq:1:12:0.025429
10000:seq:1:12:0.025422
10000:seq:1:12:0.025478
10000:seq:1:12:0.025456
10000:seq:1:12:0.025521
10000:seq:1:12:0.0255
10000:seq:1:12:0.025512
10000:seq:1:12:0.025496
10000:seq:1:12:0.02554
10000:seq:1:12:0.025496
10000:seq:1:12:0.025484
100000:seq:1:12:0.541786
100000:seq:1:12:0.52904
100000:seq:1:12:0.533935
100000:seq:1:12:0.534002
100000:seq:1:12:0.53059
100000:seq:1:12:0.535227
100000:seq:1:12:0.535372
100000:seq:1:12:0.541857
100000:seq:1:12:0.540121
100000:seq:1:12:0.53435
100000:seq:1:12:0.544736
100000:seq:1:12:0.536974
100000:seq:1:12:0.533878
100000:seq:1:12:0.536009
100000:seq:1:12:0.536395
100000:seq:1:12:0.538469
100000:seq:1:12:0.547789
100000:seq:1:12:0.536882
100000:seq:1:12:0.537593
100000:seq:1:12:0.540689
1000000:seq:1:12:5.37407
1000000:seq:1:12:5.38952
1000000:seq:1:12:5.37089
1000000:seq:1:12:5.39692
1000000:seq:1:12:5.42902
1000000:seq:1:12:5.43248
1000000:seq:1:12:5.37569
1000000:seq:1:12:5.39
1000000:seq:1:12:5.39967
1000000:seq:1:12:5.40574
1000000:seq:1:12:5.38309
1000000:seq:1:12:5.42407
1000000:seq:1:12:5.38953
1000000:seq:1:12:5.38113
1000000:seq:1:12:5.39332
1000000:seq:1:12:5.35976
1000000:seq:1:12:5.33967
1000000:seq:1:12:5.37073
1000000:seq:1:12:5.34728
1000000:seq:1:12:5.40538
10000000:seq:1:12:61.2778
10000000:seq:1:12:61.3326
10000000:seq:1:12:61.3182
10000000:seq:1:12:61.2584
10000000:seq:1:12:61.3279
10000000:seq:1:12:61.2799
10000000:seq:1:12:61.3336
10000000:seq:1:12:61.2672
10000000:seq:1:12:61.3393
10000000:seq:1:12:61.2508
10000000:seq:1:12:61.374
10000000:seq:1:12:61.2913
10000000:seq:1:12:61.3508
10000000:seq:1:12:61.269
10000000:seq:1:12:61.3134
10000000:seq:1:12:61.2459
10000000:seq:1:12:61.32
10000000:seq:1:12:61.2438
10000000:seq:1:12:61.3159
10000000:seq:1:12:61.2743

View File

@ -0,0 +1,120 @@
100:gen_omp:1:14:0.135257
100:gen_omp:1:14:0.182762
100:gen_omp:1:14:0.17158
100:gen_omp:1:14:0.125488
100:gen_omp:1:14:0.106492
100:gen_omp:1:14:0.147731
100:gen_omp:1:14:0.201078
100:gen_omp:1:14:0.181464
100:gen_omp:1:14:0.22155
100:gen_omp:1:14:0.197098
100:gen_omp:1:14:0.164243
100:gen_omp:1:14:0.208214
100:gen_omp:1:14:0.105578
100:gen_omp:1:14:0.156587
100:gen_omp:1:14:0.197459
100:gen_omp:1:14:0.189272
100:gen_omp:1:14:0.212697
100:gen_omp:1:14:0.176679
100:gen_omp:1:14:0.201104
100:gen_omp:1:14:0.193804
1000:gen_omp:1:14:0.15134
1000:gen_omp:1:14:0.228179
1000:gen_omp:1:14:0.194437
1000:gen_omp:1:14:0.190298
1000:gen_omp:1:14:0.209771
1000:gen_omp:1:14:0.234145
1000:gen_omp:1:14:0.206441
1000:gen_omp:1:14:0.166767
1000:gen_omp:1:14:0.25355
1000:gen_omp:1:14:0.210893
1000:gen_omp:1:14:0.170404
1000:gen_omp:1:14:0.229151
1000:gen_omp:1:14:0.19012
1000:gen_omp:1:14:0.210156
1000:gen_omp:1:14:0.217235
1000:gen_omp:1:14:0.179077
1000:gen_omp:1:14:0.201879
1000:gen_omp:1:14:0.234256
1000:gen_omp:1:14:0.184545
1000:gen_omp:1:14:0.191861
10000:gen_omp:1:14:0.24465
10000:gen_omp:1:14:0.314986
10000:gen_omp:1:14:0.255421
10000:gen_omp:1:14:0.323809
10000:gen_omp:1:14:0.278567
10000:gen_omp:1:14:0.291622
10000:gen_omp:1:14:0.335446
10000:gen_omp:1:14:0.325024
10000:gen_omp:1:14:0.333577
10000:gen_omp:1:14:0.25587
10000:gen_omp:1:14:0.30295
10000:gen_omp:1:14:0.253717
10000:gen_omp:1:14:0.295269
10000:gen_omp:1:14:0.309752
10000:gen_omp:1:14:0.253451
10000:gen_omp:1:14:0.251346
10000:gen_omp:1:14:0.333264
10000:gen_omp:1:14:0.329245
10000:gen_omp:1:14:0.304935
10000:gen_omp:1:14:0.286409
100000:gen_omp:1:14:1.30058
100000:gen_omp:1:14:1.65322
100000:gen_omp:1:14:1.63077
100000:gen_omp:1:14:1.56928
100000:gen_omp:1:14:1.52749
100000:gen_omp:1:14:1.43871
100000:gen_omp:1:14:1.69012
100000:gen_omp:1:14:1.46414
100000:gen_omp:1:14:1.58902
100000:gen_omp:1:14:1.4791
100000:gen_omp:1:14:1.56373
100000:gen_omp:1:14:1.59304
100000:gen_omp:1:14:1.62284
100000:gen_omp:1:14:1.6382
100000:gen_omp:1:14:1.5522
100000:gen_omp:1:14:1.67137
100000:gen_omp:1:14:1.5894
100000:gen_omp:1:14:1.64268
100000:gen_omp:1:14:1.43136
100000:gen_omp:1:14:1.50975
1000000:gen_omp:1:14:7.17205
1000000:gen_omp:1:14:6.86553
1000000:gen_omp:1:14:6.85802
1000000:gen_omp:1:14:6.77646
1000000:gen_omp:1:14:6.93574
1000000:gen_omp:1:14:7.54157
1000000:gen_omp:1:14:7.0099
1000000:gen_omp:1:14:6.99894
1000000:gen_omp:1:14:6.93602
1000000:gen_omp:1:14:7.15801
1000000:gen_omp:1:14:7.02607
1000000:gen_omp:1:14:6.80168
1000000:gen_omp:1:14:7.07372
1000000:gen_omp:1:14:6.84896
1000000:gen_omp:1:14:6.8245
1000000:gen_omp:1:14:6.81763
1000000:gen_omp:1:14:7.60017
1000000:gen_omp:1:14:7.00835
1000000:gen_omp:1:14:6.76442
1000000:gen_omp:1:14:6.7684
10000000:gen_omp:1:14:70.6276
10000000:gen_omp:1:14:70.5337
10000000:gen_omp:1:14:70.4392
10000000:gen_omp:1:14:70.204
10000000:gen_omp:1:14:70.5858
10000000:gen_omp:1:14:70.9255
10000000:gen_omp:1:14:70.9078
10000000:gen_omp:1:14:70.8295
10000000:gen_omp:1:14:70.5035
10000000:gen_omp:1:14:70.6023
10000000:gen_omp:1:14:70.5747
10000000:gen_omp:1:14:70.1382
10000000:gen_omp:1:14:70.5378
10000000:gen_omp:1:14:70.2239
10000000:gen_omp:1:14:70.1123
10000000:gen_omp:1:14:70.3724
10000000:gen_omp:1:14:70.2829
10000000:gen_omp:1:14:70.3166
10000000:gen_omp:1:14:70.6433
10000000:gen_omp:1:14:70.6215

View File

@ -0,0 +1,120 @@
100:gen_thread:1:14:0.696087
100:gen_thread:1:14:0.672131
100:gen_thread:1:14:0.741609
100:gen_thread:1:14:2.35752
100:gen_thread:1:14:0.752867
100:gen_thread:1:14:0.773905
100:gen_thread:1:14:0.659654
100:gen_thread:1:14:0.665808
100:gen_thread:1:14:1.44048
100:gen_thread:1:14:0.731424
100:gen_thread:1:14:0.743594
100:gen_thread:1:14:0.804231
100:gen_thread:1:14:0.773775
100:gen_thread:1:14:0.697922
100:gen_thread:1:14:0.789994
100:gen_thread:1:14:0.818812
100:gen_thread:1:14:0.639735
100:gen_thread:1:14:0.738111
100:gen_thread:1:14:0.676421
100:gen_thread:1:14:0.712718
1000:gen_thread:1:14:0.635039
1000:gen_thread:1:14:0.70819
1000:gen_thread:1:14:1.42243
1000:gen_thread:1:14:0.786045
1000:gen_thread:1:14:0.765702
1000:gen_thread:1:14:0.801251
1000:gen_thread:1:14:0.688944
1000:gen_thread:1:14:0.723205
1000:gen_thread:1:14:0.746947
1000:gen_thread:1:14:0.672788
1000:gen_thread:1:14:0.694845
1000:gen_thread:1:14:0.644953
1000:gen_thread:1:14:0.743964
1000:gen_thread:1:14:0.685189
1000:gen_thread:1:14:0.779437
1000:gen_thread:1:14:0.633919
1000:gen_thread:1:14:0.655122
1000:gen_thread:1:14:0.764876
1000:gen_thread:1:14:0.711036
1000:gen_thread:1:14:0.741302
10000:gen_thread:1:14:0.780583
10000:gen_thread:1:14:0.770586
10000:gen_thread:1:14:0.774614
10000:gen_thread:1:14:0.77058
10000:gen_thread:1:14:0.800571
10000:gen_thread:1:14:0.827504
10000:gen_thread:1:14:0.796638
10000:gen_thread:1:14:1.25997
10000:gen_thread:1:14:0.793553
10000:gen_thread:1:14:2.2733
10000:gen_thread:1:14:0.832912
10000:gen_thread:1:14:0.764168
10000:gen_thread:1:14:0.845847
10000:gen_thread:1:14:0.812549
10000:gen_thread:1:14:0.770227
10000:gen_thread:1:14:0.822094
10000:gen_thread:1:14:0.764849
10000:gen_thread:1:14:0.723279
10000:gen_thread:1:14:0.822519
10000:gen_thread:1:14:1.88441
100000:gen_thread:1:14:1.43416
100000:gen_thread:1:14:1.31462
100000:gen_thread:1:14:1.30981
100000:gen_thread:1:14:1.31337
100000:gen_thread:1:14:1.30622
100000:gen_thread:1:14:1.30629
100000:gen_thread:1:14:1.29542
100000:gen_thread:1:14:1.31779
100000:gen_thread:1:14:1.30888
100000:gen_thread:1:14:1.31497
100000:gen_thread:1:14:1.31206
100000:gen_thread:1:14:1.31541
100000:gen_thread:1:14:1.31534
100000:gen_thread:1:14:1.31175
100000:gen_thread:1:14:1.30213
100000:gen_thread:1:14:1.30591
100000:gen_thread:1:14:1.31203
100000:gen_thread:1:14:1.30754
100000:gen_thread:1:14:1.31323
100000:gen_thread:1:14:1.31755
1000000:gen_thread:1:14:7.34443
1000000:gen_thread:1:14:7.69502
1000000:gen_thread:1:14:7.63404
1000000:gen_thread:1:14:7.60713
1000000:gen_thread:1:14:7.45676
1000000:gen_thread:1:14:7.93888
1000000:gen_thread:1:14:7.98069
1000000:gen_thread:1:14:8.11648
1000000:gen_thread:1:14:7.71284
1000000:gen_thread:1:14:7.37332
1000000:gen_thread:1:14:7.86741
1000000:gen_thread:1:14:7.44713
1000000:gen_thread:1:14:7.72461
1000000:gen_thread:1:14:9.01304
1000000:gen_thread:1:14:8.88085
1000000:gen_thread:1:14:7.51138
1000000:gen_thread:1:14:7.79568
1000000:gen_thread:1:14:7.68152
1000000:gen_thread:1:14:7.51614
1000000:gen_thread:1:14:7.88713
10000000:gen_thread:1:14:94.8114
10000000:gen_thread:1:14:96.3333
10000000:gen_thread:1:14:94.5475
10000000:gen_thread:1:14:95.3258
10000000:gen_thread:1:14:92.4762
10000000:gen_thread:1:14:93.5306
10000000:gen_thread:1:14:93.5378
10000000:gen_thread:1:14:93.3272
10000000:gen_thread:1:14:95.3283
10000000:gen_thread:1:14:96.8181
10000000:gen_thread:1:14:95.1283
10000000:gen_thread:1:14:94.2505
10000000:gen_thread:1:14:91.5634
10000000:gen_thread:1:14:95.5002
10000000:gen_thread:1:14:94.536
10000000:gen_thread:1:14:93.9727
10000000:gen_thread:1:14:94.783
10000000:gen_thread:1:14:77.9574
10000000:gen_thread:1:14:96.3224
10000000:gen_thread:1:14:94.0634

View File

@ -0,0 +1,120 @@
100:omp:1:14:0.203159
100:omp:1:14:0.169474
100:omp:1:14:0.18426
100:omp:1:14:0.175495
100:omp:1:14:0.182448
100:omp:1:14:0.126057
100:omp:1:14:0.180658
100:omp:1:14:0.173315
100:omp:1:14:0.169784
100:omp:1:14:0.201361
100:omp:1:14:0.127286
100:omp:1:14:0.12701
100:omp:1:14:0.168996
100:omp:1:14:0.190439
100:omp:1:14:0.191922
100:omp:1:14:0.186217
100:omp:1:14:0.19434
100:omp:1:14:0.179182
100:omp:1:14:0.176117
100:omp:1:14:0.175459
1000:omp:1:14:0.187805
1000:omp:1:14:0.207634
1000:omp:1:14:0.187948
1000:omp:1:14:0.172395
1000:omp:1:14:0.214245
1000:omp:1:14:0.218327
1000:omp:1:14:0.205884
1000:omp:1:14:0.229789
1000:omp:1:14:0.222607
1000:omp:1:14:0.210857
1000:omp:1:14:0.208107
1000:omp:1:14:0.207182
1000:omp:1:14:0.188631
1000:omp:1:14:0.217726
1000:omp:1:14:0.192967
1000:omp:1:14:0.177028
1000:omp:1:14:0.195924
1000:omp:1:14:0.190945
1000:omp:1:14:0.198058
1000:omp:1:14:0.204915
10000:omp:1:14:0.263253
10000:omp:1:14:0.321604
10000:omp:1:14:0.293173
10000:omp:1:14:0.227032
10000:omp:1:14:0.277033
10000:omp:1:14:0.271202
10000:omp:1:14:0.207578
10000:omp:1:14:0.181846
10000:omp:1:14:0.281823
10000:omp:1:14:0.292437
10000:omp:1:14:0.31882
10000:omp:1:14:0.317739
10000:omp:1:14:0.31606
10000:omp:1:14:0.247096
10000:omp:1:14:0.256993
10000:omp:1:14:0.257655
10000:omp:1:14:0.311859
10000:omp:1:14:0.274659
10000:omp:1:14:0.27077
10000:omp:1:14:0.313643
100000:omp:1:14:1.41131
100000:omp:1:14:1.2752
100000:omp:1:14:1.38252
100000:omp:1:14:1.40797
100000:omp:1:14:1.44259
100000:omp:1:14:1.3616
100000:omp:1:14:1.2236
100000:omp:1:14:1.47723
100000:omp:1:14:1.42888
100000:omp:1:14:1.34968
100000:omp:1:14:1.42871
100000:omp:1:14:1.25692
100000:omp:1:14:1.41161
100000:omp:1:14:1.42044
100000:omp:1:14:1.41853
100000:omp:1:14:1.32878
100000:omp:1:14:1.319
100000:omp:1:14:1.44838
100000:omp:1:14:1.44432
100000:omp:1:14:1.45884
1000000:omp:1:14:7.3392
1000000:omp:1:14:6.15839
1000000:omp:1:14:6.32856
1000000:omp:1:14:6.27738
1000000:omp:1:14:6.19322
1000000:omp:1:14:6.64213
1000000:omp:1:14:6.39362
1000000:omp:1:14:6.32526
1000000:omp:1:14:6.85788
1000000:omp:1:14:6.45496
1000000:omp:1:14:7.04001
1000000:omp:1:14:6.35141
1000000:omp:1:14:6.44192
1000000:omp:1:14:6.78749
1000000:omp:1:14:6.5417
1000000:omp:1:14:6.77412
1000000:omp:1:14:6.30159
1000000:omp:1:14:6.46464
1000000:omp:1:14:6.36761
1000000:omp:1:14:6.33026
10000000:omp:1:14:65.6517
10000000:omp:1:14:65.8449
10000000:omp:1:14:65.5561
10000000:omp:1:14:65.6979
10000000:omp:1:14:65.6931
10000000:omp:1:14:65.6617
10000000:omp:1:14:65.7597
10000000:omp:1:14:65.6665
10000000:omp:1:14:65.4716
10000000:omp:1:14:65.8026
10000000:omp:1:14:65.6005
10000000:omp:1:14:65.7514
10000000:omp:1:14:65.8459
10000000:omp:1:14:65.7529
10000000:omp:1:14:65.5811
10000000:omp:1:14:65.6105
10000000:omp:1:14:66.0529
10000000:omp:1:14:65.5004
10000000:omp:1:14:65.7412
10000000:omp:1:14:65.7568

View File

@ -0,0 +1,120 @@
100:seq:1:14:0.000707
100:seq:1:14:0.000569
100:seq:1:14:0.000558
100:seq:1:14:0.000562
100:seq:1:14:0.000565
100:seq:1:14:0.000562
100:seq:1:14:0.000565
100:seq:1:14:0.000562
100:seq:1:14:0.000558
100:seq:1:14:0.000568
100:seq:1:14:0.000552
100:seq:1:14:0.000534
100:seq:1:14:0.000529
100:seq:1:14:0.000522
100:seq:1:14:0.000488
100:seq:1:14:0.000488
100:seq:1:14:0.000488
100:seq:1:14:0.000501
100:seq:1:14:0.000487
100:seq:1:14:0.000519
1000:seq:1:14:0.00515
1000:seq:1:14:0.005147
1000:seq:1:14:0.005136
1000:seq:1:14:0.004831
1000:seq:1:14:0.004837
1000:seq:1:14:0.00457
1000:seq:1:14:0.004559
1000:seq:1:14:0.004561
1000:seq:1:14:0.004564
1000:seq:1:14:0.00433
1000:seq:1:14:0.004109
1000:seq:1:14:0.004113
1000:seq:1:14:0.004105
1000:seq:1:14:0.0041
1000:seq:1:14:0.004129
1000:seq:1:14:0.004106
1000:seq:1:14:0.004335
1000:seq:1:14:0.004317
1000:seq:1:14:0.004332
1000:seq:1:14:0.004339
10000:seq:1:14:0.040469
10000:seq:1:14:0.035747
10000:seq:1:14:0.030066
10000:seq:1:14:0.025519
10000:seq:1:14:0.025487
10000:seq:1:14:0.025331
10000:seq:1:14:0.025395
10000:seq:1:14:0.025412
10000:seq:1:14:0.025413
10000:seq:1:14:0.025319
10000:seq:1:14:0.025489
10000:seq:1:14:0.025316
10000:seq:1:14:0.025347
10000:seq:1:14:0.025318
10000:seq:1:14:0.025373
10000:seq:1:14:0.025368
10000:seq:1:14:0.025438
10000:seq:1:14:0.025594
10000:seq:1:14:0.025426
10000:seq:1:14:0.025441
100000:seq:1:14:0.541499
100000:seq:1:14:0.53993
100000:seq:1:14:0.543681
100000:seq:1:14:0.537943
100000:seq:1:14:0.537566
100000:seq:1:14:0.539072
100000:seq:1:14:0.536083
100000:seq:1:14:0.538397
100000:seq:1:14:0.540346
100000:seq:1:14:0.541728
100000:seq:1:14:0.541782
100000:seq:1:14:0.539965
100000:seq:1:14:0.538398
100000:seq:1:14:0.533226
100000:seq:1:14:0.544333
100000:seq:1:14:0.537943
100000:seq:1:14:0.546625
100000:seq:1:14:0.529777
100000:seq:1:14:0.53928
100000:seq:1:14:0.534828
1000000:seq:1:14:5.38448
1000000:seq:1:14:5.39909
1000000:seq:1:14:5.41711
1000000:seq:1:14:5.3928
1000000:seq:1:14:5.39972
1000000:seq:1:14:5.40392
1000000:seq:1:14:5.42517
1000000:seq:1:14:5.38694
1000000:seq:1:14:5.38065
1000000:seq:1:14:5.3914
1000000:seq:1:14:5.39004
1000000:seq:1:14:5.38613
1000000:seq:1:14:5.36613
1000000:seq:1:14:5.36526
1000000:seq:1:14:5.39656
1000000:seq:1:14:5.39138
1000000:seq:1:14:5.34844
1000000:seq:1:14:5.39854
1000000:seq:1:14:5.35707
1000000:seq:1:14:5.39086
10000000:seq:1:14:61.3048
10000000:seq:1:14:61.2691
10000000:seq:1:14:61.2723
10000000:seq:1:14:61.262
10000000:seq:1:14:61.2238
10000000:seq:1:14:61.2673
10000000:seq:1:14:60.5883
10000000:seq:1:14:61.2886
10000000:seq:1:14:61.3053
10000000:seq:1:14:61.2912
10000000:seq:1:14:61.2788
10000000:seq:1:14:61.1992
10000000:seq:1:14:61.2011
10000000:seq:1:14:61.3106
10000000:seq:1:14:61.2043
10000000:seq:1:14:61.2459
10000000:seq:1:14:61.1507
10000000:seq:1:14:61.2911
10000000:seq:1:14:61.2316
10000000:seq:1:14:61.3297

View File

@ -0,0 +1,120 @@
100:gen_omp:1:16:0.133894
100:gen_omp:1:16:0.201292
100:gen_omp:1:16:0.165412
100:gen_omp:1:16:0.147633
100:gen_omp:1:16:0.199011
100:gen_omp:1:16:0.20265
100:gen_omp:1:16:0.215295
100:gen_omp:1:16:0.21345
100:gen_omp:1:16:0.206347
100:gen_omp:1:16:0.195977
100:gen_omp:1:16:0.194141
100:gen_omp:1:16:0.202901
100:gen_omp:1:16:0.230419
100:gen_omp:1:16:0.253262
100:gen_omp:1:16:0.187509
100:gen_omp:1:16:0.1476
100:gen_omp:1:16:0.147799
100:gen_omp:1:16:0.241745
100:gen_omp:1:16:0.229559
100:gen_omp:1:16:0.213174
1000:gen_omp:1:16:0.202505
1000:gen_omp:1:16:0.151896
1000:gen_omp:1:16:0.190856
1000:gen_omp:1:16:0.229138
1000:gen_omp:1:16:0.201996
1000:gen_omp:1:16:0.188703
1000:gen_omp:1:16:0.205315
1000:gen_omp:1:16:0.151496
1000:gen_omp:1:16:0.151198
1000:gen_omp:1:16:0.150667
1000:gen_omp:1:16:0.150567
1000:gen_omp:1:16:0.177412
1000:gen_omp:1:16:0.202957
1000:gen_omp:1:16:0.150594
1000:gen_omp:1:16:0.17451
1000:gen_omp:1:16:0.208158
1000:gen_omp:1:16:0.198339
1000:gen_omp:1:16:0.188937
1000:gen_omp:1:16:0.206284
1000:gen_omp:1:16:0.228528
10000:gen_omp:1:16:0.275843
10000:gen_omp:1:16:0.288116
10000:gen_omp:1:16:0.274394
10000:gen_omp:1:16:0.326023
10000:gen_omp:1:16:0.254723
10000:gen_omp:1:16:0.278837
10000:gen_omp:1:16:0.2542
10000:gen_omp:1:16:0.366703
10000:gen_omp:1:16:0.338565
10000:gen_omp:1:16:0.24296
10000:gen_omp:1:16:0.25104
10000:gen_omp:1:16:0.367187
10000:gen_omp:1:16:0.314668
10000:gen_omp:1:16:0.253045
10000:gen_omp:1:16:0.26276
10000:gen_omp:1:16:0.28852
10000:gen_omp:1:16:0.344589
10000:gen_omp:1:16:0.328365
10000:gen_omp:1:16:0.320342
10000:gen_omp:1:16:0.285524
100000:gen_omp:1:16:1.49119
100000:gen_omp:1:16:1.58653
100000:gen_omp:1:16:1.29778
100000:gen_omp:1:16:1.5142
100000:gen_omp:1:16:1.49195
100000:gen_omp:1:16:1.59656
100000:gen_omp:1:16:1.57351
100000:gen_omp:1:16:1.51683
100000:gen_omp:1:16:1.66374
100000:gen_omp:1:16:1.67166
100000:gen_omp:1:16:1.48425
100000:gen_omp:1:16:1.5129
100000:gen_omp:1:16:1.20943
100000:gen_omp:1:16:1.63474
100000:gen_omp:1:16:1.50723
100000:gen_omp:1:16:1.62827
100000:gen_omp:1:16:1.51129
100000:gen_omp:1:16:1.36943
100000:gen_omp:1:16:1.61345
100000:gen_omp:1:16:1.55709
1000000:gen_omp:1:16:7.37334
1000000:gen_omp:1:16:7.16242
1000000:gen_omp:1:16:6.97769
1000000:gen_omp:1:16:6.86307
1000000:gen_omp:1:16:6.78052
1000000:gen_omp:1:16:7.02598
1000000:gen_omp:1:16:7.10894
1000000:gen_omp:1:16:6.81154
1000000:gen_omp:1:16:6.91702
1000000:gen_omp:1:16:7.03695
1000000:gen_omp:1:16:6.98884
1000000:gen_omp:1:16:7.00148
1000000:gen_omp:1:16:7.20805
1000000:gen_omp:1:16:6.91108
1000000:gen_omp:1:16:6.84883
1000000:gen_omp:1:16:7.10896
1000000:gen_omp:1:16:7.06229
1000000:gen_omp:1:16:7.00724
1000000:gen_omp:1:16:6.84137
1000000:gen_omp:1:16:7.01926
10000000:gen_omp:1:16:70.3187
10000000:gen_omp:1:16:70.4877
10000000:gen_omp:1:16:70.4997
10000000:gen_omp:1:16:70.5995
10000000:gen_omp:1:16:70.2713
10000000:gen_omp:1:16:70.4825
10000000:gen_omp:1:16:70.3787
10000000:gen_omp:1:16:70.4974
10000000:gen_omp:1:16:70.7178
10000000:gen_omp:1:16:70.3575
10000000:gen_omp:1:16:70.4639
10000000:gen_omp:1:16:70.6803
10000000:gen_omp:1:16:70.3538
10000000:gen_omp:1:16:70.6955
10000000:gen_omp:1:16:70.5871
10000000:gen_omp:1:16:70.4381
10000000:gen_omp:1:16:70.3275
10000000:gen_omp:1:16:70.4833
10000000:gen_omp:1:16:70.3804
10000000:gen_omp:1:16:70.3251

View File

@ -0,0 +1,120 @@
100:gen_thread:1:16:0.845827
100:gen_thread:1:16:0.887394
100:gen_thread:1:16:0.897757
100:gen_thread:1:16:0.815565
100:gen_thread:1:16:0.852654
100:gen_thread:1:16:0.902965
100:gen_thread:1:16:0.781313
100:gen_thread:1:16:0.850115
100:gen_thread:1:16:0.94247
100:gen_thread:1:16:2.32117
100:gen_thread:1:16:0.896247
100:gen_thread:1:16:0.854677
100:gen_thread:1:16:0.843208
100:gen_thread:1:16:0.812193
100:gen_thread:1:16:0.826639
100:gen_thread:1:16:0.910432
100:gen_thread:1:16:0.809615
100:gen_thread:1:16:0.820346
100:gen_thread:1:16:0.848442
100:gen_thread:1:16:0.885
1000:gen_thread:1:16:0.830344
1000:gen_thread:1:16:0.920318
1000:gen_thread:1:16:0.964855
1000:gen_thread:1:16:0.915782
1000:gen_thread:1:16:0.857452
1000:gen_thread:1:16:0.96396
1000:gen_thread:1:16:0.80439
1000:gen_thread:1:16:0.87009
1000:gen_thread:1:16:0.811158
1000:gen_thread:1:16:0.811486
1000:gen_thread:1:16:0.758362
1000:gen_thread:1:16:0.877037
1000:gen_thread:1:16:0.840765
1000:gen_thread:1:16:0.898734
1000:gen_thread:1:16:0.890281
1000:gen_thread:1:16:0.777421
1000:gen_thread:1:16:0.891189
1000:gen_thread:1:16:0.850101
1000:gen_thread:1:16:0.890397
1000:gen_thread:1:16:0.825948
10000:gen_thread:1:16:0.943698
10000:gen_thread:1:16:0.971363
10000:gen_thread:1:16:2.44642
10000:gen_thread:1:16:0.893989
10000:gen_thread:1:16:0.834769
10000:gen_thread:1:16:0.994966
10000:gen_thread:1:16:0.92779
10000:gen_thread:1:16:0.833009
10000:gen_thread:1:16:0.839038
10000:gen_thread:1:16:0.953674
10000:gen_thread:1:16:0.899712
10000:gen_thread:1:16:0.880773
10000:gen_thread:1:16:0.888921
10000:gen_thread:1:16:0.955102
10000:gen_thread:1:16:0.956035
10000:gen_thread:1:16:0.895615
10000:gen_thread:1:16:0.888545
10000:gen_thread:1:16:0.898345
10000:gen_thread:1:16:0.837211
10000:gen_thread:1:16:0.961383
100000:gen_thread:1:16:1.50684
100000:gen_thread:1:16:1.47002
100000:gen_thread:1:16:1.46186
100000:gen_thread:1:16:1.46141
100000:gen_thread:1:16:1.46742
100000:gen_thread:1:16:1.47229
100000:gen_thread:1:16:1.46768
100000:gen_thread:1:16:1.46843
100000:gen_thread:1:16:1.45929
100000:gen_thread:1:16:1.4587
100000:gen_thread:1:16:1.46575
100000:gen_thread:1:16:1.46823
100000:gen_thread:1:16:1.45824
100000:gen_thread:1:16:1.4683
100000:gen_thread:1:16:1.46419
100000:gen_thread:1:16:1.46947
100000:gen_thread:1:16:1.47706
100000:gen_thread:1:16:1.45897
100000:gen_thread:1:16:1.46482
100000:gen_thread:1:16:1.4786
1000000:gen_thread:1:16:7.7757
1000000:gen_thread:1:16:7.88891
1000000:gen_thread:1:16:7.97938
1000000:gen_thread:1:16:7.82717
1000000:gen_thread:1:16:8.00628
1000000:gen_thread:1:16:7.84049
1000000:gen_thread:1:16:7.92227
1000000:gen_thread:1:16:7.77392
1000000:gen_thread:1:16:7.9225
1000000:gen_thread:1:16:7.8459
1000000:gen_thread:1:16:9.0472
1000000:gen_thread:1:16:7.94331
1000000:gen_thread:1:16:7.84587
1000000:gen_thread:1:16:7.96833
1000000:gen_thread:1:16:7.94406
1000000:gen_thread:1:16:8.00306
1000000:gen_thread:1:16:8.04404
1000000:gen_thread:1:16:8.28205
1000000:gen_thread:1:16:8.87793
1000000:gen_thread:1:16:7.98897
10000000:gen_thread:1:16:99.5761
10000000:gen_thread:1:16:99.044
10000000:gen_thread:1:16:97.7065
10000000:gen_thread:1:16:98.2668
10000000:gen_thread:1:16:97.3301
10000000:gen_thread:1:16:90.2072
10000000:gen_thread:1:16:96.6615
10000000:gen_thread:1:16:97.7572
10000000:gen_thread:1:16:96.4454
10000000:gen_thread:1:16:96.1403
10000000:gen_thread:1:16:97.5835
10000000:gen_thread:1:16:97.5353
10000000:gen_thread:1:16:98.3772
10000000:gen_thread:1:16:97.9815
10000000:gen_thread:1:16:90.6106
10000000:gen_thread:1:16:98.6442
10000000:gen_thread:1:16:94.8855
10000000:gen_thread:1:16:101.913
10000000:gen_thread:1:16:98.1215
10000000:gen_thread:1:16:97.2888

View File

@ -0,0 +1,120 @@
100:omp:1:16:0.23473
100:omp:1:16:0.146436
100:omp:1:16:0.146074
100:omp:1:16:0.123612
100:omp:1:16:0.203968
100:omp:1:16:0.20963
100:omp:1:16:0.164563
100:omp:1:16:0.179212
100:omp:1:16:0.230183
100:omp:1:16:0.148931
100:omp:1:16:0.143911
100:omp:1:16:0.144401
100:omp:1:16:0.144669
100:omp:1:16:0.16434
100:omp:1:16:0.178363
100:omp:1:16:0.225764
100:omp:1:16:0.195018
100:omp:1:16:0.194834
100:omp:1:16:0.201924
100:omp:1:16:0.211831
1000:omp:1:16:0.17095
1000:omp:1:16:0.189575
1000:omp:1:16:0.24268
1000:omp:1:16:0.220935
1000:omp:1:16:0.150542
1000:omp:1:16:0.149701
1000:omp:1:16:0.201321
1000:omp:1:16:0.180389
1000:omp:1:16:0.149382
1000:omp:1:16:0.170908
1000:omp:1:16:0.202632
1000:omp:1:16:0.220686
1000:omp:1:16:0.149795
1000:omp:1:16:0.218396
1000:omp:1:16:0.218904
1000:omp:1:16:0.144329
1000:omp:1:16:0.149387
1000:omp:1:16:0.149869
1000:omp:1:16:0.148957
1000:omp:1:16:0.215765
10000:omp:1:16:0.280554
10000:omp:1:16:0.226615
10000:omp:1:16:0.29385
10000:omp:1:16:0.242725
10000:omp:1:16:0.343229
10000:omp:1:16:0.235141
10000:omp:1:16:0.244249
10000:omp:1:16:0.26926
10000:omp:1:16:0.231681
10000:omp:1:16:0.274825
10000:omp:1:16:0.263782
10000:omp:1:16:0.268876
10000:omp:1:16:0.260694
10000:omp:1:16:0.302333
10000:omp:1:16:0.282074
10000:omp:1:16:0.297696
10000:omp:1:16:0.224761
10000:omp:1:16:0.243684
10000:omp:1:16:0.210686
10000:omp:1:16:0.233946
100000:omp:1:16:1.25958
100000:omp:1:16:1.22176
100000:omp:1:16:1.31119
100000:omp:1:16:1.46013
100000:omp:1:16:1.48088
100000:omp:1:16:1.30032
100000:omp:1:16:1.33694
100000:omp:1:16:1.17849
100000:omp:1:16:1.44967
100000:omp:1:16:1.41403
100000:omp:1:16:1.45185
100000:omp:1:16:1.39598
100000:omp:1:16:1.11691
100000:omp:1:16:1.46952
100000:omp:1:16:1.24053
100000:omp:1:16:1.31286
100000:omp:1:16:1.37408
100000:omp:1:16:1.16378
100000:omp:1:16:1.31184
100000:omp:1:16:1.37411
1000000:omp:1:16:6.9954
1000000:omp:1:16:6.40878
1000000:omp:1:16:6.22486
1000000:omp:1:16:6.18365
1000000:omp:1:16:6.81944
1000000:omp:1:16:6.76818
1000000:omp:1:16:6.22727
1000000:omp:1:16:6.28211
1000000:omp:1:16:6.53925
1000000:omp:1:16:6.6524
1000000:omp:1:16:6.21496
1000000:omp:1:16:6.66507
1000000:omp:1:16:6.89628
1000000:omp:1:16:6.47641
1000000:omp:1:16:6.17575
1000000:omp:1:16:6.12523
1000000:omp:1:16:6.90806
1000000:omp:1:16:6.47872
1000000:omp:1:16:6.98393
1000000:omp:1:16:6.41016
10000000:omp:1:16:66.0535
10000000:omp:1:16:66.1548
10000000:omp:1:16:66.2598
10000000:omp:1:16:66.0868
10000000:omp:1:16:66.2559
10000000:omp:1:16:66.0664
10000000:omp:1:16:66.1904
10000000:omp:1:16:66.285
10000000:omp:1:16:66.1567
10000000:omp:1:16:66.2096
10000000:omp:1:16:66.1601
10000000:omp:1:16:65.9864
10000000:omp:1:16:66.4873
10000000:omp:1:16:66.2579
10000000:omp:1:16:66.1545
10000000:omp:1:16:66.2666
10000000:omp:1:16:66.2645
10000000:omp:1:16:66.1537
10000000:omp:1:16:66.2563
10000000:omp:1:16:66.1968

View File

@ -0,0 +1,120 @@
100:seq:1:16:0.000704
100:seq:1:16:0.000651
100:seq:1:16:0.000593
100:seq:1:16:0.000607
100:seq:1:16:0.000592
100:seq:1:16:0.000552
100:seq:1:16:0.000564
100:seq:1:16:0.000566
100:seq:1:16:0.000565
100:seq:1:16:0.000518
100:seq:1:16:0.00053
100:seq:1:16:0.000529
100:seq:1:16:0.000488
100:seq:1:16:0.000529
100:seq:1:16:0.000516
100:seq:1:16:0.000534
100:seq:1:16:0.000532
100:seq:1:16:0.000518
100:seq:1:16:0.00053
100:seq:1:16:0.000501
1000:seq:1:16:0.004842
1000:seq:1:16:0.00485
1000:seq:1:16:0.004582
1000:seq:1:16:0.004341
1000:seq:1:16:0.004115
1000:seq:1:16:0.004111
1000:seq:1:16:0.003917
1000:seq:1:16:0.003911
1000:seq:1:16:0.003915
1000:seq:1:16:0.003908
1000:seq:1:16:0.003919
1000:seq:1:16:0.003918
1000:seq:1:16:0.003735
1000:seq:1:16:0.003735
1000:seq:1:16:0.003738
1000:seq:1:16:0.003912
1000:seq:1:16:0.003907
1000:seq:1:16:0.003915
1000:seq:1:16:0.003909
1000:seq:1:16:0.003904
10000:seq:1:16:0.037262
10000:seq:1:16:0.030517
10000:seq:1:16:0.025446
10000:seq:1:16:0.025522
10000:seq:1:16:0.025419
10000:seq:1:16:0.025396
10000:seq:1:16:0.025513
10000:seq:1:16:0.025323
10000:seq:1:16:0.025409
10000:seq:1:16:0.025597
10000:seq:1:16:0.025437
10000:seq:1:16:0.025676
10000:seq:1:16:0.025329
10000:seq:1:16:0.025429
10000:seq:1:16:0.025373
10000:seq:1:16:0.025355
10000:seq:1:16:0.025488
10000:seq:1:16:0.02547
10000:seq:1:16:0.025556
10000:seq:1:16:0.025361
100000:seq:1:16:0.533527
100000:seq:1:16:0.534837
100000:seq:1:16:0.53621
100000:seq:1:16:0.53869
100000:seq:1:16:0.535725
100000:seq:1:16:0.537571
100000:seq:1:16:0.536922
100000:seq:1:16:0.528546
100000:seq:1:16:0.531538
100000:seq:1:16:0.541205
100000:seq:1:16:0.53137
100000:seq:1:16:0.538254
100000:seq:1:16:0.539484
100000:seq:1:16:0.533881
100000:seq:1:16:0.545989
100000:seq:1:16:0.538938
100000:seq:1:16:0.545381
100000:seq:1:16:0.53768
100000:seq:1:16:0.543364
100000:seq:1:16:0.536257
1000000:seq:1:16:5.3689
1000000:seq:1:16:5.41752
1000000:seq:1:16:5.37014
1000000:seq:1:16:5.3879
1000000:seq:1:16:5.38465
1000000:seq:1:16:5.37294
1000000:seq:1:16:5.38027
1000000:seq:1:16:5.36287
1000000:seq:1:16:5.40081
1000000:seq:1:16:5.35913
1000000:seq:1:16:5.39438
1000000:seq:1:16:5.40595
1000000:seq:1:16:5.36538
1000000:seq:1:16:5.40309
1000000:seq:1:16:5.36702
1000000:seq:1:16:5.37649
1000000:seq:1:16:5.37049
1000000:seq:1:16:5.36186
1000000:seq:1:16:5.36041
1000000:seq:1:16:5.39954
10000000:seq:1:16:61.3431
10000000:seq:1:16:61.2427
10000000:seq:1:16:61.2652
10000000:seq:1:16:61.2133
10000000:seq:1:16:61.2952
10000000:seq:1:16:61.236
10000000:seq:1:16:61.4162
10000000:seq:1:16:61.3331
10000000:seq:1:16:61.3775
10000000:seq:1:16:61.3261
10000000:seq:1:16:61.2963
10000000:seq:1:16:61.3261
10000000:seq:1:16:61.2563
10000000:seq:1:16:61.3576
10000000:seq:1:16:61.3164
10000000:seq:1:16:61.2602
10000000:seq:1:16:61.2607
10000000:seq:1:16:61.3416
10000000:seq:1:16:61.2487
10000000:seq:1:16:61.2497

View File

@ -0,0 +1,120 @@
100:gen_omp:1:18:0.169695
100:gen_omp:1:18:0.163202
100:gen_omp:1:18:0.213167
100:gen_omp:1:18:0.230666
100:gen_omp:1:18:0.179424
100:gen_omp:1:18:0.171857
100:gen_omp:1:18:0.178481
100:gen_omp:1:18:0.161491
100:gen_omp:1:18:0.155198
100:gen_omp:1:18:0.170335
100:gen_omp:1:18:0.192401
100:gen_omp:1:18:0.223702
100:gen_omp:1:18:0.155677
100:gen_omp:1:18:0.149812
100:gen_omp:1:18:0.177428
100:gen_omp:1:18:0.155748
100:gen_omp:1:18:0.155196
100:gen_omp:1:18:0.151646
100:gen_omp:1:18:0.187187
100:gen_omp:1:18:0.196024
1000:gen_omp:1:18:0.24362
1000:gen_omp:1:18:0.232067
1000:gen_omp:1:18:0.201636
1000:gen_omp:1:18:0.262763
1000:gen_omp:1:18:0.198602
1000:gen_omp:1:18:0.238049
1000:gen_omp:1:18:0.216305
1000:gen_omp:1:18:0.255945
1000:gen_omp:1:18:0.235835
1000:gen_omp:1:18:0.251323
1000:gen_omp:1:18:0.170512
1000:gen_omp:1:18:0.172651
1000:gen_omp:1:18:0.263396
1000:gen_omp:1:18:0.215693
1000:gen_omp:1:18:0.195811
1000:gen_omp:1:18:0.28033
1000:gen_omp:1:18:0.216287
1000:gen_omp:1:18:0.169626
1000:gen_omp:1:18:0.166316
1000:gen_omp:1:18:0.187187
10000:gen_omp:1:18:0.248588
10000:gen_omp:1:18:0.318517
10000:gen_omp:1:18:0.245235
10000:gen_omp:1:18:0.221502
10000:gen_omp:1:18:0.265488
10000:gen_omp:1:18:0.295723
10000:gen_omp:1:18:0.294038
10000:gen_omp:1:18:0.272443
10000:gen_omp:1:18:0.290815
10000:gen_omp:1:18:0.294375
10000:gen_omp:1:18:0.350139
10000:gen_omp:1:18:0.366732
10000:gen_omp:1:18:0.308887
10000:gen_omp:1:18:0.365315
10000:gen_omp:1:18:0.314213
10000:gen_omp:1:18:0.240303
10000:gen_omp:1:18:0.335517
10000:gen_omp:1:18:0.268159
10000:gen_omp:1:18:0.268843
10000:gen_omp:1:18:0.217736
100000:gen_omp:1:18:1.57743
100000:gen_omp:1:18:1.45871
100000:gen_omp:1:18:1.58249
100000:gen_omp:1:18:1.42816
100000:gen_omp:1:18:1.57213
100000:gen_omp:1:18:1.39235
100000:gen_omp:1:18:1.4395
100000:gen_omp:1:18:1.50177
100000:gen_omp:1:18:1.46607
100000:gen_omp:1:18:1.41548
100000:gen_omp:1:18:1.47304
100000:gen_omp:1:18:1.38106
100000:gen_omp:1:18:1.55191
100000:gen_omp:1:18:1.49185
100000:gen_omp:1:18:1.31416
100000:gen_omp:1:18:1.26615
100000:gen_omp:1:18:1.69331
100000:gen_omp:1:18:1.58988
100000:gen_omp:1:18:1.3137
100000:gen_omp:1:18:1.29534
1000000:gen_omp:1:18:7.55488
1000000:gen_omp:1:18:7.03535
1000000:gen_omp:1:18:6.72391
1000000:gen_omp:1:18:7.12819
1000000:gen_omp:1:18:6.71794
1000000:gen_omp:1:18:6.92439
1000000:gen_omp:1:18:7.08104
1000000:gen_omp:1:18:7.48801
1000000:gen_omp:1:18:6.98386
1000000:gen_omp:1:18:7.35967
1000000:gen_omp:1:18:6.79886
1000000:gen_omp:1:18:6.98944
1000000:gen_omp:1:18:7.23039
1000000:gen_omp:1:18:6.97692
1000000:gen_omp:1:18:7.30808
1000000:gen_omp:1:18:6.87521
1000000:gen_omp:1:18:7.26419
1000000:gen_omp:1:18:6.80414
1000000:gen_omp:1:18:7.35016
1000000:gen_omp:1:18:7.06094
10000000:gen_omp:1:18:70.7634
10000000:gen_omp:1:18:70.4651
10000000:gen_omp:1:18:70.7
10000000:gen_omp:1:18:70.5081
10000000:gen_omp:1:18:70.777
10000000:gen_omp:1:18:70.6465
10000000:gen_omp:1:18:70.3301
10000000:gen_omp:1:18:70.4269
10000000:gen_omp:1:18:70.4921
10000000:gen_omp:1:18:70.5876
10000000:gen_omp:1:18:70.728
10000000:gen_omp:1:18:70.4422
10000000:gen_omp:1:18:70.4989
10000000:gen_omp:1:18:70.7994
10000000:gen_omp:1:18:70.7858
10000000:gen_omp:1:18:70.5721
10000000:gen_omp:1:18:70.6735
10000000:gen_omp:1:18:70.5154
10000000:gen_omp:1:18:70.5079
10000000:gen_omp:1:18:70.513

View File

@ -0,0 +1,120 @@
100:gen_thread:1:18:0.892623
100:gen_thread:1:18:1.02153
100:gen_thread:1:18:1.01757
100:gen_thread:1:18:1.03342
100:gen_thread:1:18:1.05551
100:gen_thread:1:18:0.967316
100:gen_thread:1:18:0.885204
100:gen_thread:1:18:0.972547
100:gen_thread:1:18:1.04094
100:gen_thread:1:18:1.02987
100:gen_thread:1:18:0.874646
100:gen_thread:1:18:0.855717
100:gen_thread:1:18:0.955238
100:gen_thread:1:18:1.06462
100:gen_thread:1:18:0.920617
100:gen_thread:1:18:0.858063
100:gen_thread:1:18:1.01217
100:gen_thread:1:18:1.00724
100:gen_thread:1:18:0.86073
100:gen_thread:1:18:0.868054
1000:gen_thread:1:18:0.922695
1000:gen_thread:1:18:0.948102
1000:gen_thread:1:18:0.957823
1000:gen_thread:1:18:0.896382
1000:gen_thread:1:18:0.944464
1000:gen_thread:1:18:1.00974
1000:gen_thread:1:18:1.0289
1000:gen_thread:1:18:0.94101
1000:gen_thread:1:18:2.44571
1000:gen_thread:1:18:0.91039
1000:gen_thread:1:18:1.00864
1000:gen_thread:1:18:0.968211
1000:gen_thread:1:18:1.04018
1000:gen_thread:1:18:0.95898
1000:gen_thread:1:18:0.901808
1000:gen_thread:1:18:0.818825
1000:gen_thread:1:18:1.02713
1000:gen_thread:1:18:1.03311
1000:gen_thread:1:18:0.914098
1000:gen_thread:1:18:0.965063
10000:gen_thread:1:18:1.06591
10000:gen_thread:1:18:0.973002
10000:gen_thread:1:18:1.01131
10000:gen_thread:1:18:2.61716
10000:gen_thread:1:18:1.05679
10000:gen_thread:1:18:0.937279
10000:gen_thread:1:18:1.05616
10000:gen_thread:1:18:1.00284
10000:gen_thread:1:18:1.00852
10000:gen_thread:1:18:1.01538
10000:gen_thread:1:18:0.919305
10000:gen_thread:1:18:1.04674
10000:gen_thread:1:18:1.09
10000:gen_thread:1:18:0.993154
10000:gen_thread:1:18:0.912797
10000:gen_thread:1:18:0.988165
10000:gen_thread:1:18:1.04267
10000:gen_thread:1:18:0.995957
10000:gen_thread:1:18:0.951746
10000:gen_thread:1:18:0.992837
100000:gen_thread:1:18:1.55782
100000:gen_thread:1:18:1.50607
100000:gen_thread:1:18:1.51028
100000:gen_thread:1:18:1.50838
100000:gen_thread:1:18:1.51123
100000:gen_thread:1:18:1.51576
100000:gen_thread:1:18:1.51568
100000:gen_thread:1:18:1.51592
100000:gen_thread:1:18:1.51615
100000:gen_thread:1:18:1.50211
100000:gen_thread:1:18:1.52693
100000:gen_thread:1:18:4.26978
100000:gen_thread:1:18:1.67258
100000:gen_thread:1:18:1.51485
100000:gen_thread:1:18:1.5139
100000:gen_thread:1:18:1.49544
100000:gen_thread:1:18:1.52264
100000:gen_thread:1:18:1.50541
100000:gen_thread:1:18:1.51062
100000:gen_thread:1:18:1.49916
1000000:gen_thread:1:18:7.59217
1000000:gen_thread:1:18:7.72625
1000000:gen_thread:1:18:8.08988
1000000:gen_thread:1:18:7.83876
1000000:gen_thread:1:18:8.24828
1000000:gen_thread:1:18:8.52138
1000000:gen_thread:1:18:8.05682
1000000:gen_thread:1:18:8.12113
1000000:gen_thread:1:18:8.0451
1000000:gen_thread:1:18:8.41238
1000000:gen_thread:1:18:7.86397
1000000:gen_thread:1:18:7.52013
1000000:gen_thread:1:18:7.95345
1000000:gen_thread:1:18:8.07165
1000000:gen_thread:1:18:7.54312
1000000:gen_thread:1:18:7.71293
1000000:gen_thread:1:18:7.66235
1000000:gen_thread:1:18:7.65845
1000000:gen_thread:1:18:8.68028
1000000:gen_thread:1:18:8.71861
10000000:gen_thread:1:18:96.5234
10000000:gen_thread:1:18:94.3285
10000000:gen_thread:1:18:93.8896
10000000:gen_thread:1:18:93.2062
10000000:gen_thread:1:18:94.0314
10000000:gen_thread:1:18:94.4278
10000000:gen_thread:1:18:78.938
10000000:gen_thread:1:18:96.3174
10000000:gen_thread:1:18:93.8178
10000000:gen_thread:1:18:91.7859
10000000:gen_thread:1:18:95.6188
10000000:gen_thread:1:18:94.9486
10000000:gen_thread:1:18:93.469
10000000:gen_thread:1:18:94.3145
10000000:gen_thread:1:18:93.7497
10000000:gen_thread:1:18:97.5609
10000000:gen_thread:1:18:94.0693
10000000:gen_thread:1:18:95.4233
10000000:gen_thread:1:18:93.4823
10000000:gen_thread:1:18:93.6501

View File

@ -0,0 +1,120 @@
100:omp:1:18:0.242423
100:omp:1:18:0.152658
100:omp:1:18:0.218091
100:omp:1:18:0.205155
100:omp:1:18:0.208453
100:omp:1:18:0.218468
100:omp:1:18:0.204173
100:omp:1:18:0.133625
100:omp:1:18:0.225801
100:omp:1:18:0.215233
100:omp:1:18:0.158849
100:omp:1:18:0.185199
100:omp:1:18:0.231785
100:omp:1:18:0.21479
100:omp:1:18:0.149721
100:omp:1:18:0.153095
100:omp:1:18:0.15005
100:omp:1:18:0.146939
100:omp:1:18:0.187575
100:omp:1:18:0.204981
1000:omp:1:18:0.164636
1000:omp:1:18:0.189802
1000:omp:1:18:0.187256
1000:omp:1:18:0.17371
1000:omp:1:18:0.169052
1000:omp:1:18:0.139108
1000:omp:1:18:0.215171
1000:omp:1:18:0.169384
1000:omp:1:18:0.168748
1000:omp:1:18:0.165036
1000:omp:1:18:0.165275
1000:omp:1:18:0.165091
1000:omp:1:18:0.189707
1000:omp:1:18:0.165119
1000:omp:1:18:0.166303
1000:omp:1:18:0.216645
1000:omp:1:18:0.249752
1000:omp:1:18:0.21707
1000:omp:1:18:0.210199
1000:omp:1:18:0.257933
10000:omp:1:18:0.249163
10000:omp:1:18:0.262282
10000:omp:1:18:0.367587
10000:omp:1:18:0.29402
10000:omp:1:18:0.341475
10000:omp:1:18:0.255485
10000:omp:1:18:0.367015
10000:omp:1:18:0.282886
10000:omp:1:18:0.326785
10000:omp:1:18:0.292443
10000:omp:1:18:0.254534
10000:omp:1:18:0.261227
10000:omp:1:18:0.208317
10000:omp:1:18:0.269268
10000:omp:1:18:0.282208
10000:omp:1:18:0.254435
10000:omp:1:18:0.242716
10000:omp:1:18:0.294681
10000:omp:1:18:0.379574
10000:omp:1:18:0.285444
100000:omp:1:18:1.29633
100000:omp:1:18:1.27861
100000:omp:1:18:1.2467
100000:omp:1:18:1.19203
100000:omp:1:18:1.27406
100000:omp:1:18:1.36235
100000:omp:1:18:1.33691
100000:omp:1:18:1.34699
100000:omp:1:18:1.29037
100000:omp:1:18:1.14634
100000:omp:1:18:1.51438
100000:omp:1:18:1.33102
100000:omp:1:18:1.43725
100000:omp:1:18:0.940192
100000:omp:1:18:1.14164
100000:omp:1:18:1.55154
100000:omp:1:18:1.40322
100000:omp:1:18:1.2393
100000:omp:1:18:1.44217
100000:omp:1:18:1.13643
1000000:omp:1:18:7.19116
1000000:omp:1:18:6.69684
1000000:omp:1:18:6.49815
1000000:omp:1:18:6.15961
1000000:omp:1:18:6.32768
1000000:omp:1:18:6.83488
1000000:omp:1:18:6.26427
1000000:omp:1:18:6.68138
1000000:omp:1:18:6.7569
1000000:omp:1:18:6.7644
1000000:omp:1:18:6.32671
1000000:omp:1:18:6.6498
1000000:omp:1:18:6.35439
1000000:omp:1:18:6.66318
1000000:omp:1:18:6.42151
1000000:omp:1:18:6.68428
1000000:omp:1:18:6.88014
1000000:omp:1:18:6.55917
1000000:omp:1:18:6.90806
1000000:omp:1:18:6.78894
10000000:omp:1:18:66.3726
10000000:omp:1:18:66.5035
10000000:omp:1:18:66.3493
10000000:omp:1:18:66.1746
10000000:omp:1:18:66.5425
10000000:omp:1:18:66.5358
10000000:omp:1:18:66.7964
10000000:omp:1:18:66.4206
10000000:omp:1:18:66.701
10000000:omp:1:18:67.1176
10000000:omp:1:18:66.5275
10000000:omp:1:18:66.6285
10000000:omp:1:18:66.4525
10000000:omp:1:18:66.473
10000000:omp:1:18:66.3471
10000000:omp:1:18:66.5749
10000000:omp:1:18:66.494
10000000:omp:1:18:66.4199
10000000:omp:1:18:66.465
10000000:omp:1:18:66.6305

View File

@ -0,0 +1,120 @@
100:seq:1:18:0.000557
100:seq:1:18:0.000517
100:seq:1:18:0.00053
100:seq:1:18:0.000564
100:seq:1:18:0.000518
100:seq:1:18:0.000534
100:seq:1:18:0.000518
100:seq:1:18:0.000518
100:seq:1:18:0.000531
100:seq:1:18:0.000518
100:seq:1:18:0.000528
100:seq:1:18:0.000518
100:seq:1:18:0.000518
100:seq:1:18:0.000519
100:seq:1:18:0.000533
100:seq:1:18:0.000521
100:seq:1:18:0.000533
100:seq:1:18:0.000531
100:seq:1:18:0.000523
100:seq:1:18:0.000532
1000:seq:1:18:0.004837
1000:seq:1:18:0.004835
1000:seq:1:18:0.004846
1000:seq:1:18:0.004839
1000:seq:1:18:0.004832
1000:seq:1:18:0.004842
1000:seq:1:18:0.004835
1000:seq:1:18:0.004852
1000:seq:1:18:0.004841
1000:seq:1:18:0.004839
1000:seq:1:18:0.004841
1000:seq:1:18:0.004582
1000:seq:1:18:0.004575
1000:seq:1:18:0.004571
1000:seq:1:18:0.004329
1000:seq:1:18:0.004326
1000:seq:1:18:0.004105
1000:seq:1:18:0.003907
1000:seq:1:18:0.00392
1000:seq:1:18:0.003902
10000:seq:1:18:0.037077
10000:seq:1:18:0.030116
10000:seq:1:18:0.025448
10000:seq:1:18:0.025507
10000:seq:1:18:0.025464
10000:seq:1:18:0.025461
10000:seq:1:18:0.025452
10000:seq:1:18:0.02552
10000:seq:1:18:0.025362
10000:seq:1:18:0.025446
10000:seq:1:18:0.025482
10000:seq:1:18:0.025445
10000:seq:1:18:0.025455
10000:seq:1:18:0.025374
10000:seq:1:18:0.025482
10000:seq:1:18:0.025476
10000:seq:1:18:0.025446
10000:seq:1:18:0.025502
10000:seq:1:18:0.025498
10000:seq:1:18:0.025447
100000:seq:1:18:0.546766
100000:seq:1:18:0.533864
100000:seq:1:18:0.54685
100000:seq:1:18:0.533879
100000:seq:1:18:0.546716
100000:seq:1:18:0.533942
100000:seq:1:18:0.534432
100000:seq:1:18:0.534256
100000:seq:1:18:0.533657
100000:seq:1:18:0.536697
100000:seq:1:18:0.534297
100000:seq:1:18:0.527449
100000:seq:1:18:0.532358
100000:seq:1:18:0.537178
100000:seq:1:18:0.544745
100000:seq:1:18:0.53348
100000:seq:1:18:0.539886
100000:seq:1:18:0.534334
100000:seq:1:18:0.549991
100000:seq:1:18:0.535913
1000000:seq:1:18:5.42276
1000000:seq:1:18:5.40007
1000000:seq:1:18:5.39245
1000000:seq:1:18:5.4037
1000000:seq:1:18:5.373
1000000:seq:1:18:5.40895
1000000:seq:1:18:5.39323
1000000:seq:1:18:5.4186
1000000:seq:1:18:5.38499
1000000:seq:1:18:5.39988
1000000:seq:1:18:5.41296
1000000:seq:1:18:5.37339
1000000:seq:1:18:5.40622
1000000:seq:1:18:5.38832
1000000:seq:1:18:5.37783
1000000:seq:1:18:5.37077
1000000:seq:1:18:5.40269
1000000:seq:1:18:5.3804
1000000:seq:1:18:5.39082
1000000:seq:1:18:5.37035
10000000:seq:1:18:61.2607
10000000:seq:1:18:61.3602
10000000:seq:1:18:61.2622
10000000:seq:1:18:61.3079
10000000:seq:1:18:61.3105
10000000:seq:1:18:61.348
10000000:seq:1:18:61.3069
10000000:seq:1:18:61.2971
10000000:seq:1:18:61.3185
10000000:seq:1:18:61.3021
10000000:seq:1:18:61.2354
10000000:seq:1:18:61.3573
10000000:seq:1:18:61.2608
10000000:seq:1:18:61.3224
10000000:seq:1:18:61.3128
10000000:seq:1:18:61.3068
10000000:seq:1:18:61.2811
10000000:seq:1:18:61.3305
10000000:seq:1:18:61.2874
10000000:seq:1:18:61.2838

View File

@ -0,0 +1,120 @@
100:gen_omp:1:1:0.001014
100:gen_omp:1:1:0.00076
100:gen_omp:1:1:0.000771
100:gen_omp:1:1:0.000801
100:gen_omp:1:1:0.000771
100:gen_omp:1:1:0.000769
100:gen_omp:1:1:0.000794
100:gen_omp:1:1:0.00078
100:gen_omp:1:1:0.00078
100:gen_omp:1:1:0.000779
100:gen_omp:1:1:0.000762
100:gen_omp:1:1:0.000807
100:gen_omp:1:1:0.000768
100:gen_omp:1:1:0.000767
100:gen_omp:1:1:0.000771
100:gen_omp:1:1:0.000763
100:gen_omp:1:1:0.000796
100:gen_omp:1:1:0.000761
100:gen_omp:1:1:0.000779
100:gen_omp:1:1:0.000763
1000:gen_omp:1:1:0.003994
1000:gen_omp:1:1:0.003898
1000:gen_omp:1:1:0.003905
1000:gen_omp:1:1:0.003907
1000:gen_omp:1:1:0.003933
1000:gen_omp:1:1:0.003942
1000:gen_omp:1:1:0.004039
1000:gen_omp:1:1:0.003919
1000:gen_omp:1:1:0.003966
1000:gen_omp:1:1:0.004008
1000:gen_omp:1:1:0.003913
1000:gen_omp:1:1:0.003953
1000:gen_omp:1:1:0.003923
1000:gen_omp:1:1:0.003905
1000:gen_omp:1:1:0.0039
1000:gen_omp:1:1:0.003893
1000:gen_omp:1:1:0.004039
1000:gen_omp:1:1:0.003903
1000:gen_omp:1:1:0.003901
1000:gen_omp:1:1:0.003912
10000:gen_omp:1:1:0.034988
10000:gen_omp:1:1:0.034974
10000:gen_omp:1:1:0.035064
10000:gen_omp:1:1:0.034992
10000:gen_omp:1:1:0.0347
10000:gen_omp:1:1:0.034824
10000:gen_omp:1:1:0.034771
10000:gen_omp:1:1:0.03509
10000:gen_omp:1:1:0.034875
10000:gen_omp:1:1:0.034813
10000:gen_omp:1:1:0.034883
10000:gen_omp:1:1:0.034893
10000:gen_omp:1:1:0.035062
10000:gen_omp:1:1:0.03513
10000:gen_omp:1:1:0.034941
10000:gen_omp:1:1:0.034835
10000:gen_omp:1:1:0.034987
10000:gen_omp:1:1:0.075015
10000:gen_omp:1:1:0.07505
10000:gen_omp:1:1:0.056021
100000:gen_omp:1:1:0.616002
100000:gen_omp:1:1:0.599163
100000:gen_omp:1:1:0.615122
100000:gen_omp:1:1:0.598207
100000:gen_omp:1:1:0.611761
100000:gen_omp:1:1:0.597909
100000:gen_omp:1:1:0.615206
100000:gen_omp:1:1:0.596296
100000:gen_omp:1:1:0.609872
100000:gen_omp:1:1:0.601992
100000:gen_omp:1:1:0.615881
100000:gen_omp:1:1:0.597437
100000:gen_omp:1:1:0.596932
100000:gen_omp:1:1:0.600755
100000:gen_omp:1:1:0.605613
100000:gen_omp:1:1:0.601742
100000:gen_omp:1:1:0.603346
100000:gen_omp:1:1:0.599382
100000:gen_omp:1:1:0.600752
100000:gen_omp:1:1:0.598555
1000000:gen_omp:1:1:6.14945
1000000:gen_omp:1:1:6.12154
1000000:gen_omp:1:1:6.07773
1000000:gen_omp:1:1:6.11655
1000000:gen_omp:1:1:6.0754
1000000:gen_omp:1:1:6.09614
1000000:gen_omp:1:1:6.07218
1000000:gen_omp:1:1:6.1097
1000000:gen_omp:1:1:6.0679
1000000:gen_omp:1:1:6.06303
1000000:gen_omp:1:1:6.01524
1000000:gen_omp:1:1:6.07615
1000000:gen_omp:1:1:6.06079
1000000:gen_omp:1:1:5.98695
1000000:gen_omp:1:1:6.09853
1000000:gen_omp:1:1:6.05256
1000000:gen_omp:1:1:6.03252
1000000:gen_omp:1:1:6.13134
1000000:gen_omp:1:1:6.00856
1000000:gen_omp:1:1:6.06845
10000000:gen_omp:1:1:66.503
10000000:gen_omp:1:1:66.5176
10000000:gen_omp:1:1:66.5567
10000000:gen_omp:1:1:66.5538
10000000:gen_omp:1:1:66.4919
10000000:gen_omp:1:1:66.4304
10000000:gen_omp:1:1:66.4875
10000000:gen_omp:1:1:66.571
10000000:gen_omp:1:1:66.5096
10000000:gen_omp:1:1:66.5313
10000000:gen_omp:1:1:66.4105
10000000:gen_omp:1:1:66.5015
10000000:gen_omp:1:1:66.4283
10000000:gen_omp:1:1:66.4551
10000000:gen_omp:1:1:66.4796
10000000:gen_omp:1:1:66.5739
10000000:gen_omp:1:1:66.4471
10000000:gen_omp:1:1:66.4777
10000000:gen_omp:1:1:66.4303
10000000:gen_omp:1:1:66.4999

View File

@ -0,0 +1,120 @@
100:gen_thread:1:1:0.000401
100:gen_thread:1:1:0.00037
100:gen_thread:1:1:0.000381
100:gen_thread:1:1:0.000375
100:gen_thread:1:1:0.000369
100:gen_thread:1:1:0.00037
100:gen_thread:1:1:0.000379
100:gen_thread:1:1:0.00039
100:gen_thread:1:1:0.000375
100:gen_thread:1:1:0.000371
100:gen_thread:1:1:0.000369
100:gen_thread:1:1:0.000374
100:gen_thread:1:1:0.000371
100:gen_thread:1:1:0.000369
100:gen_thread:1:1:0.000368
100:gen_thread:1:1:0.00037
100:gen_thread:1:1:0.000376
100:gen_thread:1:1:0.000382
100:gen_thread:1:1:0.000371
100:gen_thread:1:1:0.000373
1000:gen_thread:1:1:0.003486
1000:gen_thread:1:1:0.003411
1000:gen_thread:1:1:0.003413
1000:gen_thread:1:1:0.003412
1000:gen_thread:1:1:0.003417
1000:gen_thread:1:1:0.003422
1000:gen_thread:1:1:0.003418
1000:gen_thread:1:1:0.003429
1000:gen_thread:1:1:0.003429
1000:gen_thread:1:1:0.003422
1000:gen_thread:1:1:0.003426
1000:gen_thread:1:1:0.003425
1000:gen_thread:1:1:0.003419
1000:gen_thread:1:1:0.003418
1000:gen_thread:1:1:0.00342
1000:gen_thread:1:1:0.003494
1000:gen_thread:1:1:0.00347
1000:gen_thread:1:1:0.003463
1000:gen_thread:1:1:0.003473
1000:gen_thread:1:1:0.00347
10000:gen_thread:1:1:0.033998
10000:gen_thread:1:1:0.03401
10000:gen_thread:1:1:0.034104
10000:gen_thread:1:1:0.034029
10000:gen_thread:1:1:0.034022
10000:gen_thread:1:1:0.034012
10000:gen_thread:1:1:0.034099
10000:gen_thread:1:1:0.03401
10000:gen_thread:1:1:0.034026
10000:gen_thread:1:1:0.034039
10000:gen_thread:1:1:0.034078
10000:gen_thread:1:1:0.033998
10000:gen_thread:1:1:0.03412
10000:gen_thread:1:1:0.034004
10000:gen_thread:1:1:0.034061
10000:gen_thread:1:1:0.033981
10000:gen_thread:1:1:0.033998
10000:gen_thread:1:1:0.034243
10000:gen_thread:1:1:0.034018
10000:gen_thread:1:1:0.03404
100000:gen_thread:1:1:0.606383
100000:gen_thread:1:1:0.599608
100000:gen_thread:1:1:0.605264
100000:gen_thread:1:1:0.599219
100000:gen_thread:1:1:0.606717
100000:gen_thread:1:1:0.600285
100000:gen_thread:1:1:0.595346
100000:gen_thread:1:1:0.59919
100000:gen_thread:1:1:0.597221
100000:gen_thread:1:1:0.599388
100000:gen_thread:1:1:0.599151
100000:gen_thread:1:1:0.604454
100000:gen_thread:1:1:0.594519
100000:gen_thread:1:1:0.598494
100000:gen_thread:1:1:0.593566
100000:gen_thread:1:1:0.604107
100000:gen_thread:1:1:0.599624
100000:gen_thread:1:1:0.604364
100000:gen_thread:1:1:0.600408
100000:gen_thread:1:1:0.599047
1000000:gen_thread:1:1:5.99475
1000000:gen_thread:1:1:5.97356
1000000:gen_thread:1:1:6.04875
1000000:gen_thread:1:1:5.98287
1000000:gen_thread:1:1:6.00091
1000000:gen_thread:1:1:5.9922
1000000:gen_thread:1:1:5.99761
1000000:gen_thread:1:1:6.00362
1000000:gen_thread:1:1:5.99313
1000000:gen_thread:1:1:5.96564
1000000:gen_thread:1:1:6.04297
1000000:gen_thread:1:1:6.03133
1000000:gen_thread:1:1:5.98683
1000000:gen_thread:1:1:5.98482
1000000:gen_thread:1:1:6.01311
1000000:gen_thread:1:1:5.97628
1000000:gen_thread:1:1:6.0119
1000000:gen_thread:1:1:5.97123
1000000:gen_thread:1:1:5.99415
1000000:gen_thread:1:1:6.00002
10000000:gen_thread:1:1:66.1755
10000000:gen_thread:1:1:66.3491
10000000:gen_thread:1:1:66.2898
10000000:gen_thread:1:1:66.2409
10000000:gen_thread:1:1:66.2873
10000000:gen_thread:1:1:66.1895
10000000:gen_thread:1:1:66.2124
10000000:gen_thread:1:1:66.0299
10000000:gen_thread:1:1:66.1569
10000000:gen_thread:1:1:66.2016
10000000:gen_thread:1:1:66.3281
10000000:gen_thread:1:1:66.4048
10000000:gen_thread:1:1:66.2587
10000000:gen_thread:1:1:66.1486
10000000:gen_thread:1:1:66.272
10000000:gen_thread:1:1:66.2351
10000000:gen_thread:1:1:66.2392
10000000:gen_thread:1:1:66.2333
10000000:gen_thread:1:1:66.3886
10000000:gen_thread:1:1:66.1761

View File

@ -0,0 +1,120 @@
100:omp:1:1:0.000664
100:omp:1:1:0.000658
100:omp:1:1:0.000709
100:omp:1:1:0.000657
100:omp:1:1:0.000666
100:omp:1:1:0.000665
100:omp:1:1:0.000656
100:omp:1:1:0.000687
100:omp:1:1:0.000655
100:omp:1:1:0.000656
100:omp:1:1:0.000687
100:omp:1:1:0.000653
100:omp:1:1:0.000663
100:omp:1:1:0.000673
100:omp:1:1:0.000656
100:omp:1:1:0.000699
100:omp:1:1:0.000655
100:omp:1:1:0.000662
100:omp:1:1:0.000673
100:omp:1:1:0.000662
1000:omp:1:1:0.002995
1000:omp:1:1:0.003005
1000:omp:1:1:0.002933
1000:omp:1:1:0.002934
1000:omp:1:1:0.00296
1000:omp:1:1:0.00295
1000:omp:1:1:0.003014
1000:omp:1:1:0.003018
1000:omp:1:1:0.003016
1000:omp:1:1:0.00295
1000:omp:1:1:0.002946
1000:omp:1:1:0.002947
1000:omp:1:1:0.002973
1000:omp:1:1:0.002956
1000:omp:1:1:0.002945
1000:omp:1:1:0.003024
1000:omp:1:1:0.003017
1000:omp:1:1:0.002966
1000:omp:1:1:0.002938
1000:omp:1:1:0.00294
10000:omp:1:1:0.025623
10000:omp:1:1:0.025624
10000:omp:1:1:0.025728
10000:omp:1:1:0.025723
10000:omp:1:1:0.025762
10000:omp:1:1:0.025701
10000:omp:1:1:0.025646
10000:omp:1:1:0.025655
10000:omp:1:1:0.025634
10000:omp:1:1:0.025837
10000:omp:1:1:0.02571
10000:omp:1:1:0.025712
10000:omp:1:1:0.025568
10000:omp:1:1:0.025719
10000:omp:1:1:0.025688
10000:omp:1:1:0.025815
10000:omp:1:1:0.025577
10000:omp:1:1:0.02572
10000:omp:1:1:0.025579
10000:omp:1:1:0.025585
100000:omp:1:1:0.535994
100000:omp:1:1:0.540766
100000:omp:1:1:0.536306
100000:omp:1:1:0.536992
100000:omp:1:1:0.53607
100000:omp:1:1:0.539847
100000:omp:1:1:0.53427
100000:omp:1:1:0.542608
100000:omp:1:1:0.546122
100000:omp:1:1:0.53356
100000:omp:1:1:0.541434
100000:omp:1:1:0.550877
100000:omp:1:1:0.547861
100000:omp:1:1:0.543036
100000:omp:1:1:0.537781
100000:omp:1:1:0.539528
100000:omp:1:1:0.542186
100000:omp:1:1:0.536754
100000:omp:1:1:0.538403
100000:omp:1:1:0.540259
1000000:omp:1:1:5.41292
1000000:omp:1:1:5.4028
1000000:omp:1:1:5.4111
1000000:omp:1:1:5.38537
1000000:omp:1:1:5.41074
1000000:omp:1:1:5.41933
1000000:omp:1:1:5.37753
1000000:omp:1:1:5.41287
1000000:omp:1:1:5.38494
1000000:omp:1:1:5.42803
1000000:omp:1:1:5.38714
1000000:omp:1:1:5.40449
1000000:omp:1:1:5.387
1000000:omp:1:1:5.38087
1000000:omp:1:1:5.39139
1000000:omp:1:1:5.3834
1000000:omp:1:1:5.39418
1000000:omp:1:1:5.40052
1000000:omp:1:1:5.37981
1000000:omp:1:1:5.39614
10000000:omp:1:1:61.1503
10000000:omp:1:1:61.167
10000000:omp:1:1:61.3045
10000000:omp:1:1:61.2185
10000000:omp:1:1:61.3023
10000000:omp:1:1:61.1067
10000000:omp:1:1:61.3007
10000000:omp:1:1:61.169
10000000:omp:1:1:61.2139
10000000:omp:1:1:61.1539
10000000:omp:1:1:61.3214
10000000:omp:1:1:61.2316
10000000:omp:1:1:61.1584
10000000:omp:1:1:61.2205
10000000:omp:1:1:61.2184
10000000:omp:1:1:61.3025
10000000:omp:1:1:61.3412
10000000:omp:1:1:61.2543
10000000:omp:1:1:61.2768
10000000:omp:1:1:61.2461

View File

@ -0,0 +1,120 @@
100:seq:1:1:0.000696
100:seq:1:1:0.000655
100:seq:1:1:0.000608
100:seq:1:1:0.000598
100:seq:1:1:0.000608
100:seq:1:1:0.000607
100:seq:1:1:0.000605
100:seq:1:1:0.000592
100:seq:1:1:0.000593
100:seq:1:1:0.000556
100:seq:1:1:0.000582
100:seq:1:1:0.000569
100:seq:1:1:0.000572
100:seq:1:1:0.000564
100:seq:1:1:0.000568
100:seq:1:1:0.000556
100:seq:1:1:0.000564
100:seq:1:1:0.000522
100:seq:1:1:0.000534
100:seq:1:1:0.000522
1000:seq:1:1:0.005143
1000:seq:1:1:0.005133
1000:seq:1:1:0.005125
1000:seq:1:1:0.005137
1000:seq:1:1:0.00514
1000:seq:1:1:0.005149
1000:seq:1:1:0.005141
1000:seq:1:1:0.005149
1000:seq:1:1:0.005139
1000:seq:1:1:0.005146
1000:seq:1:1:0.005147
1000:seq:1:1:0.004846
1000:seq:1:1:0.004843
1000:seq:1:1:0.004829
1000:seq:1:1:0.004832
1000:seq:1:1:0.004847
1000:seq:1:1:0.004833
1000:seq:1:1:0.004844
1000:seq:1:1:0.004832
1000:seq:1:1:0.00484
10000:seq:1:1:0.043812
10000:seq:1:1:0.038323
10000:seq:1:1:0.035265
10000:seq:1:1:0.027229
10000:seq:1:1:0.025488
10000:seq:1:1:0.025605
10000:seq:1:1:0.025713
10000:seq:1:1:0.025632
10000:seq:1:1:0.025613
10000:seq:1:1:0.02561
10000:seq:1:1:0.025523
10000:seq:1:1:0.025466
10000:seq:1:1:0.025672
10000:seq:1:1:0.0257
10000:seq:1:1:0.025563
10000:seq:1:1:0.025615
10000:seq:1:1:0.025549
10000:seq:1:1:0.025609
10000:seq:1:1:0.025671
10000:seq:1:1:0.025661
100000:seq:1:1:0.53523
100000:seq:1:1:0.537863
100000:seq:1:1:0.535211
100000:seq:1:1:0.538299
100000:seq:1:1:0.536152
100000:seq:1:1:0.535243
100000:seq:1:1:0.533021
100000:seq:1:1:0.533714
100000:seq:1:1:0.53772
100000:seq:1:1:0.535788
100000:seq:1:1:0.535566
100000:seq:1:1:0.537626
100000:seq:1:1:0.537716
100000:seq:1:1:0.536711
100000:seq:1:1:0.53352
100000:seq:1:1:0.537332
100000:seq:1:1:0.535164
100000:seq:1:1:0.545718
100000:seq:1:1:0.531649
100000:seq:1:1:0.543979
1000000:seq:1:1:5.39756
1000000:seq:1:1:5.36787
1000000:seq:1:1:5.39786
1000000:seq:1:1:5.39994
1000000:seq:1:1:5.39503
1000000:seq:1:1:5.40046
1000000:seq:1:1:5.39416
1000000:seq:1:1:5.39358
1000000:seq:1:1:5.38088
1000000:seq:1:1:5.3959
1000000:seq:1:1:5.41432
1000000:seq:1:1:5.40733
1000000:seq:1:1:5.3934
1000000:seq:1:1:5.39632
1000000:seq:1:1:5.38775
1000000:seq:1:1:5.39776
1000000:seq:1:1:5.39187
1000000:seq:1:1:5.39886
1000000:seq:1:1:5.3716
1000000:seq:1:1:5.42044
10000000:seq:1:1:61.2942
10000000:seq:1:1:61.2475
10000000:seq:1:1:61.2943
10000000:seq:1:1:61.2891
10000000:seq:1:1:61.2638
10000000:seq:1:1:61.2413
10000000:seq:1:1:61.1324
10000000:seq:1:1:61.2304
10000000:seq:1:1:61.2153
10000000:seq:1:1:61.3166
10000000:seq:1:1:61.2893
10000000:seq:1:1:61.302
10000000:seq:1:1:61.2162
10000000:seq:1:1:61.314
10000000:seq:1:1:61.3092
10000000:seq:1:1:61.2832
10000000:seq:1:1:61.2989
10000000:seq:1:1:61.3249
10000000:seq:1:1:61.2219
10000000:seq:1:1:61.3273

View File

@ -0,0 +1,120 @@
100:gen_omp:1:2:0.015725
100:gen_omp:1:2:0.01757
100:gen_omp:1:2:0.017013
100:gen_omp:1:2:0.015901
100:gen_omp:1:2:0.01459
100:gen_omp:1:2:0.015559
100:gen_omp:1:2:0.015972
100:gen_omp:1:2:0.015585
100:gen_omp:1:2:0.015111
100:gen_omp:1:2:0.015809
100:gen_omp:1:2:0.0153
100:gen_omp:1:2:0.015658
100:gen_omp:1:2:0.015138
100:gen_omp:1:2:0.014032
100:gen_omp:1:2:0.016373
100:gen_omp:1:2:0.015764
100:gen_omp:1:2:0.015565
100:gen_omp:1:2:0.01446
100:gen_omp:1:2:0.014176
100:gen_omp:1:2:0.013789
1000:gen_omp:1:2:0.016545
1000:gen_omp:1:2:0.017455
1000:gen_omp:1:2:0.015904
1000:gen_omp:1:2:0.016125
1000:gen_omp:1:2:0.016577
1000:gen_omp:1:2:0.016413
1000:gen_omp:1:2:0.016674
1000:gen_omp:1:2:0.01671
1000:gen_omp:1:2:0.015841
1000:gen_omp:1:2:0.016538
1000:gen_omp:1:2:0.016286
1000:gen_omp:1:2:0.017512
1000:gen_omp:1:2:0.017701
1000:gen_omp:1:2:0.017415
1000:gen_omp:1:2:0.018079
1000:gen_omp:1:2:0.016811
1000:gen_omp:1:2:0.017053
1000:gen_omp:1:2:0.016411
1000:gen_omp:1:2:0.017621
1000:gen_omp:1:2:0.016611
10000:gen_omp:1:2:0.069344
10000:gen_omp:1:2:0.063894
10000:gen_omp:1:2:0.0599
10000:gen_omp:1:2:0.052782
10000:gen_omp:1:2:0.045495
10000:gen_omp:1:2:0.04604
10000:gen_omp:1:2:0.045367
10000:gen_omp:1:2:0.04528
10000:gen_omp:1:2:0.045747
10000:gen_omp:1:2:0.045396
10000:gen_omp:1:2:0.045534
10000:gen_omp:1:2:0.045721
10000:gen_omp:1:2:0.044706
10000:gen_omp:1:2:0.045533
10000:gen_omp:1:2:0.04528
10000:gen_omp:1:2:0.045425
10000:gen_omp:1:2:0.04517
10000:gen_omp:1:2:0.04492
10000:gen_omp:1:2:0.045964
10000:gen_omp:1:2:0.045063
100000:gen_omp:1:2:0.61864
100000:gen_omp:1:2:0.627195
100000:gen_omp:1:2:0.610839
100000:gen_omp:1:2:0.627354
100000:gen_omp:1:2:0.618874
100000:gen_omp:1:2:0.620149
100000:gen_omp:1:2:0.618186
100000:gen_omp:1:2:0.619437
100000:gen_omp:1:2:0.622293
100000:gen_omp:1:2:0.624625
100000:gen_omp:1:2:0.625712
100000:gen_omp:1:2:0.614837
100000:gen_omp:1:2:0.648125
100000:gen_omp:1:2:0.623747
100000:gen_omp:1:2:0.62517
100000:gen_omp:1:2:0.626365
100000:gen_omp:1:2:0.638706
100000:gen_omp:1:2:0.62659
100000:gen_omp:1:2:0.625124
100000:gen_omp:1:2:0.619802
1000000:gen_omp:1:2:6.2059
1000000:gen_omp:1:2:6.14752
1000000:gen_omp:1:2:6.10729
1000000:gen_omp:1:2:6.07653
1000000:gen_omp:1:2:6.17774
1000000:gen_omp:1:2:6.12243
1000000:gen_omp:1:2:6.13276
1000000:gen_omp:1:2:6.13942
1000000:gen_omp:1:2:6.15378
1000000:gen_omp:1:2:6.14388
1000000:gen_omp:1:2:6.15719
1000000:gen_omp:1:2:6.15564
1000000:gen_omp:1:2:6.17263
1000000:gen_omp:1:2:6.14191
1000000:gen_omp:1:2:6.2114
1000000:gen_omp:1:2:6.09293
1000000:gen_omp:1:2:6.12061
1000000:gen_omp:1:2:6.17199
1000000:gen_omp:1:2:6.19209
1000000:gen_omp:1:2:6.20168
10000000:gen_omp:1:2:67.0324
10000000:gen_omp:1:2:66.9617
10000000:gen_omp:1:2:66.8255
10000000:gen_omp:1:2:66.9489
10000000:gen_omp:1:2:66.86
10000000:gen_omp:1:2:66.9868
10000000:gen_omp:1:2:67.089
10000000:gen_omp:1:2:66.8125
10000000:gen_omp:1:2:66.9235
10000000:gen_omp:1:2:66.8378
10000000:gen_omp:1:2:67.0015
10000000:gen_omp:1:2:66.9121
10000000:gen_omp:1:2:66.9285
10000000:gen_omp:1:2:66.9944
10000000:gen_omp:1:2:66.8868
10000000:gen_omp:1:2:66.8766
10000000:gen_omp:1:2:66.9761
10000000:gen_omp:1:2:66.8419
10000000:gen_omp:1:2:66.9947
10000000:gen_omp:1:2:66.7674

View File

@ -0,0 +1,120 @@
100:gen_thread:1:2:0.037896
100:gen_thread:1:2:0.03822
100:gen_thread:1:2:0.037813
100:gen_thread:1:2:0.038167
100:gen_thread:1:2:0.03811
100:gen_thread:1:2:0.039096
100:gen_thread:1:2:0.037598
100:gen_thread:1:2:0.037482
100:gen_thread:1:2:0.037511
100:gen_thread:1:2:0.037197
100:gen_thread:1:2:0.038262
100:gen_thread:1:2:0.037706
100:gen_thread:1:2:0.037447
100:gen_thread:1:2:0.037271
100:gen_thread:1:2:0.037729
100:gen_thread:1:2:0.037514
100:gen_thread:1:2:0.037588
100:gen_thread:1:2:0.037843
100:gen_thread:1:2:0.037125
100:gen_thread:1:2:0.037942
1000:gen_thread:1:2:0.048777
1000:gen_thread:1:2:0.047191
1000:gen_thread:1:2:0.047185
1000:gen_thread:1:2:0.047495
1000:gen_thread:1:2:0.04759
1000:gen_thread:1:2:0.047365
1000:gen_thread:1:2:0.047472
1000:gen_thread:1:2:0.04793
1000:gen_thread:1:2:0.047688
1000:gen_thread:1:2:0.047779
1000:gen_thread:1:2:0.047597
1000:gen_thread:1:2:0.047623
1000:gen_thread:1:2:0.047455
1000:gen_thread:1:2:0.046633
1000:gen_thread:1:2:0.047692
1000:gen_thread:1:2:0.047886
1000:gen_thread:1:2:0.047235
1000:gen_thread:1:2:0.047726
1000:gen_thread:1:2:0.04737
1000:gen_thread:1:2:0.047529
10000:gen_thread:1:2:0.084456
10000:gen_thread:1:2:0.086555
10000:gen_thread:1:2:0.083551
10000:gen_thread:1:2:0.08434
10000:gen_thread:1:2:0.083747
10000:gen_thread:1:2:0.084739
10000:gen_thread:1:2:0.0847
10000:gen_thread:1:2:0.084515
10000:gen_thread:1:2:0.084117
10000:gen_thread:1:2:0.083638
10000:gen_thread:1:2:0.084238
10000:gen_thread:1:2:0.084247
10000:gen_thread:1:2:0.084626
10000:gen_thread:1:2:0.084727
10000:gen_thread:1:2:0.083969
10000:gen_thread:1:2:0.083425
10000:gen_thread:1:2:0.086749
10000:gen_thread:1:2:0.084205
10000:gen_thread:1:2:0.084862
10000:gen_thread:1:2:0.084379
100000:gen_thread:1:2:0.643129
100000:gen_thread:1:2:0.64416
100000:gen_thread:1:2:0.664169
100000:gen_thread:1:2:0.64299
100000:gen_thread:1:2:0.676296
100000:gen_thread:1:2:0.644504
100000:gen_thread:1:2:0.643309
100000:gen_thread:1:2:0.646974
100000:gen_thread:1:2:0.64421
100000:gen_thread:1:2:0.643596
100000:gen_thread:1:2:0.658619
100000:gen_thread:1:2:0.643144
100000:gen_thread:1:2:0.642244
100000:gen_thread:1:2:0.645733
100000:gen_thread:1:2:0.642106
100000:gen_thread:1:2:0.646983
100000:gen_thread:1:2:0.644769
100000:gen_thread:1:2:0.709358
100000:gen_thread:1:2:0.642487
100000:gen_thread:1:2:0.643115
1000000:gen_thread:1:2:6.06577
1000000:gen_thread:1:2:6.03703
1000000:gen_thread:1:2:6.07467
1000000:gen_thread:1:2:6.07766
1000000:gen_thread:1:2:6.08601
1000000:gen_thread:1:2:6.09666
1000000:gen_thread:1:2:6.035
1000000:gen_thread:1:2:6.03317
1000000:gen_thread:1:2:6.0767
1000000:gen_thread:1:2:6.05541
1000000:gen_thread:1:2:6.04815
1000000:gen_thread:1:2:6.06811
1000000:gen_thread:1:2:6.06384
1000000:gen_thread:1:2:6.1534
1000000:gen_thread:1:2:6.07441
1000000:gen_thread:1:2:6.09596
1000000:gen_thread:1:2:6.08524
1000000:gen_thread:1:2:6.10091
1000000:gen_thread:1:2:6.09087
1000000:gen_thread:1:2:6.07658
10000000:gen_thread:1:2:70.7172
10000000:gen_thread:1:2:70.3879
10000000:gen_thread:1:2:71.2249
10000000:gen_thread:1:2:70.0712
10000000:gen_thread:1:2:70.337
10000000:gen_thread:1:2:70.3227
10000000:gen_thread:1:2:70.4232
10000000:gen_thread:1:2:70.4569
10000000:gen_thread:1:2:70.5256
10000000:gen_thread:1:2:70.6402
10000000:gen_thread:1:2:70.0962
10000000:gen_thread:1:2:70.2613
10000000:gen_thread:1:2:70.4054
10000000:gen_thread:1:2:70.6433
10000000:gen_thread:1:2:70.4634
10000000:gen_thread:1:2:70.3107
10000000:gen_thread:1:2:70.7925
10000000:gen_thread:1:2:70.3368
10000000:gen_thread:1:2:70.4898
10000000:gen_thread:1:2:70.1771

View File

@ -0,0 +1,120 @@
100:omp:1:2:0.013395
100:omp:1:2:0.012471
100:omp:1:2:0.01167
100:omp:1:2:0.014533
100:omp:1:2:0.013684
100:omp:1:2:0.012734
100:omp:1:2:0.014292
100:omp:1:2:0.012519
100:omp:1:2:0.012242
100:omp:1:2:0.013028
100:omp:1:2:0.012622
100:omp:1:2:0.01203
100:omp:1:2:0.011716
100:omp:1:2:0.012211
100:omp:1:2:0.012792
100:omp:1:2:0.011495
100:omp:1:2:0.011468
100:omp:1:2:0.011522
100:omp:1:2:0.015875
100:omp:1:2:0.012932
1000:omp:1:2:0.015355
1000:omp:1:2:0.013049
1000:omp:1:2:0.013153
1000:omp:1:2:0.01515
1000:omp:1:2:0.013644
1000:omp:1:2:0.01577
1000:omp:1:2:0.013414
1000:omp:1:2:0.013911
1000:omp:1:2:0.013404
1000:omp:1:2:0.01338
1000:omp:1:2:0.013325
1000:omp:1:2:0.013395
1000:omp:1:2:0.013868
1000:omp:1:2:0.013113
1000:omp:1:2:0.012889
1000:omp:1:2:0.013254
1000:omp:1:2:0.013872
1000:omp:1:2:0.01286
1000:omp:1:2:0.012502
1000:omp:1:2:0.012877
10000:omp:1:2:0.046139
10000:omp:1:2:0.042587
10000:omp:1:2:0.038511
10000:omp:1:2:0.034666
10000:omp:1:2:0.036471
10000:omp:1:2:0.035838
10000:omp:1:2:0.037033
10000:omp:1:2:0.03613
10000:omp:1:2:0.039019
10000:omp:1:2:0.035333
10000:omp:1:2:0.036977
10000:omp:1:2:0.035444
10000:omp:1:2:0.039035
10000:omp:1:2:0.037177
10000:omp:1:2:0.074902
10000:omp:1:2:0.054473
10000:omp:1:2:0.055577
10000:omp:1:2:0.047426
10000:omp:1:2:0.046874
10000:omp:1:2:0.043375
100000:omp:1:2:0.615342
100000:omp:1:2:0.548964
100000:omp:1:2:0.560816
100000:omp:1:2:0.55036
100000:omp:1:2:0.555486
100000:omp:1:2:0.549549
100000:omp:1:2:0.546042
100000:omp:1:2:0.54803
100000:omp:1:2:0.548292
100000:omp:1:2:0.547225
100000:omp:1:2:0.559832
100000:omp:1:2:0.547164
100000:omp:1:2:0.554127
100000:omp:1:2:0.557318
100000:omp:1:2:0.539766
100000:omp:1:2:0.551122
100000:omp:1:2:0.543332
100000:omp:1:2:0.536293
100000:omp:1:2:0.543234
100000:omp:1:2:0.547369
1000000:omp:1:2:5.47603
1000000:omp:1:2:5.5047
1000000:omp:1:2:5.46448
1000000:omp:1:2:5.43405
1000000:omp:1:2:5.44043
1000000:omp:1:2:5.41084
1000000:omp:1:2:5.41422
1000000:omp:1:2:5.43695
1000000:omp:1:2:5.43224
1000000:omp:1:2:5.42837
1000000:omp:1:2:5.4484
1000000:omp:1:2:5.47451
1000000:omp:1:2:5.57224
1000000:omp:1:2:5.51349
1000000:omp:1:2:5.41616
1000000:omp:1:2:5.45003
1000000:omp:1:2:5.40642
1000000:omp:1:2:5.40609
1000000:omp:1:2:5.39714
1000000:omp:1:2:5.43052
10000000:omp:1:2:61.6663
10000000:omp:1:2:61.56
10000000:omp:1:2:61.7878
10000000:omp:1:2:61.573
10000000:omp:1:2:61.6388
10000000:omp:1:2:61.6154
10000000:omp:1:2:61.7131
10000000:omp:1:2:61.6227
10000000:omp:1:2:61.7379
10000000:omp:1:2:61.6059
10000000:omp:1:2:61.9037
10000000:omp:1:2:61.7024
10000000:omp:1:2:61.6347
10000000:omp:1:2:61.6055
10000000:omp:1:2:61.503
10000000:omp:1:2:61.7634
10000000:omp:1:2:61.6416
10000000:omp:1:2:61.7437
10000000:omp:1:2:61.7245
10000000:omp:1:2:61.6891

View File

@ -0,0 +1,120 @@
100:seq:1:2:0.000449
100:seq:1:2:0.000417
100:seq:1:2:0.00044
100:seq:1:2:0.00044
100:seq:1:2:0.000447
100:seq:1:2:0.000422
100:seq:1:2:0.000469
100:seq:1:2:0.000464
100:seq:1:2:0.000446
100:seq:1:2:0.00047
100:seq:1:2:0.000472
100:seq:1:2:0.000447
100:seq:1:2:0.00044
100:seq:1:2:0.00044
100:seq:1:2:0.00047
100:seq:1:2:0.000461
100:seq:1:2:0.000463
100:seq:1:2:0.000513
100:seq:1:2:0.000502
100:seq:1:2:0.0005
1000:seq:1:2:0.004844
1000:seq:1:2:0.004837
1000:seq:1:2:0.004574
1000:seq:1:2:0.004565
1000:seq:1:2:0.004563
1000:seq:1:2:0.004571
1000:seq:1:2:0.004329
1000:seq:1:2:0.004322
1000:seq:1:2:0.004321
1000:seq:1:2:0.004327
1000:seq:1:2:0.004328
1000:seq:1:2:0.004329
1000:seq:1:2:0.004117
1000:seq:1:2:0.004105
1000:seq:1:2:0.00411
1000:seq:1:2:0.004105
1000:seq:1:2:0.003914
1000:seq:1:2:0.003913
1000:seq:1:2:0.003908
1000:seq:1:2:0.003906
10000:seq:1:2:0.037203
10000:seq:1:2:0.028739
10000:seq:1:2:0.025477
10000:seq:1:2:0.025415
10000:seq:1:2:0.025451
10000:seq:1:2:0.025456
10000:seq:1:2:0.025442
10000:seq:1:2:0.025362
10000:seq:1:2:0.025428
10000:seq:1:2:0.025312
10000:seq:1:2:0.025364
10000:seq:1:2:0.025417
10000:seq:1:2:0.025326
10000:seq:1:2:0.053948
10000:seq:1:2:0.046193
10000:seq:1:2:0.039237
10000:seq:1:2:0.035298
10000:seq:1:2:0.029865
10000:seq:1:2:0.025394
10000:seq:1:2:0.02559
100000:seq:1:2:0.53889
100000:seq:1:2:0.530581
100000:seq:1:2:0.532683
100000:seq:1:2:0.527479
100000:seq:1:2:0.531305
100000:seq:1:2:0.536995
100000:seq:1:2:0.54141
100000:seq:1:2:0.533448
100000:seq:1:2:0.531741
100000:seq:1:2:0.535926
100000:seq:1:2:0.533264
100000:seq:1:2:0.529921
100000:seq:1:2:0.536711
100000:seq:1:2:0.532327
100000:seq:1:2:0.537686
100000:seq:1:2:0.531817
100000:seq:1:2:0.541854
100000:seq:1:2:0.535483
100000:seq:1:2:0.552265
100000:seq:1:2:0.539049
1000000:seq:1:2:5.3945
1000000:seq:1:2:5.41263
1000000:seq:1:2:5.39932
1000000:seq:1:2:5.37993
1000000:seq:1:2:5.39509
1000000:seq:1:2:5.40296
1000000:seq:1:2:5.40632
1000000:seq:1:2:5.38614
1000000:seq:1:2:5.43084
1000000:seq:1:2:5.39025
1000000:seq:1:2:5.40204
1000000:seq:1:2:5.36538
1000000:seq:1:2:5.40798
1000000:seq:1:2:5.43489
1000000:seq:1:2:5.3735
1000000:seq:1:2:5.35997
1000000:seq:1:2:5.40214
1000000:seq:1:2:5.35416
1000000:seq:1:2:5.40426
1000000:seq:1:2:5.40756
10000000:seq:1:2:61.2186
10000000:seq:1:2:61.363
10000000:seq:1:2:61.224
10000000:seq:1:2:61.1909
10000000:seq:1:2:61.1335
10000000:seq:1:2:61.2064
10000000:seq:1:2:61.231
10000000:seq:1:2:61.4416
10000000:seq:1:2:61.2481
10000000:seq:1:2:61.356
10000000:seq:1:2:61.1577
10000000:seq:1:2:61.2135
10000000:seq:1:2:61.3013
10000000:seq:1:2:61.2147
10000000:seq:1:2:61.297
10000000:seq:1:2:61.3479
10000000:seq:1:2:61.2662
10000000:seq:1:2:61.2801
10000000:seq:1:2:61.1721
10000000:seq:1:2:61.3519

View File

@ -0,0 +1,120 @@
100:gen_omp:1:4:0.09002
100:gen_omp:1:4:0.079483
100:gen_omp:1:4:0.069966
100:gen_omp:1:4:0.075371
100:gen_omp:1:4:0.087289
100:gen_omp:1:4:0.078637
100:gen_omp:1:4:0.091212
100:gen_omp:1:4:0.083366
100:gen_omp:1:4:0.075463
100:gen_omp:1:4:0.072961
100:gen_omp:1:4:0.079799
100:gen_omp:1:4:0.081233
100:gen_omp:1:4:0.074598
100:gen_omp:1:4:0.076388
100:gen_omp:1:4:0.072952
100:gen_omp:1:4:0.072088
100:gen_omp:1:4:0.086407
100:gen_omp:1:4:0.070711
100:gen_omp:1:4:0.076997
100:gen_omp:1:4:0.066255
1000:gen_omp:1:4:0.045319
1000:gen_omp:1:4:0.0448
1000:gen_omp:1:4:0.044965
1000:gen_omp:1:4:0.042868
1000:gen_omp:1:4:0.046053
1000:gen_omp:1:4:0.044942
1000:gen_omp:1:4:0.045854
1000:gen_omp:1:4:0.047206
1000:gen_omp:1:4:0.042545
1000:gen_omp:1:4:0.045736
1000:gen_omp:1:4:0.046053
1000:gen_omp:1:4:0.046455
1000:gen_omp:1:4:0.046913
1000:gen_omp:1:4:0.046044
1000:gen_omp:1:4:0.048725
1000:gen_omp:1:4:0.048664
1000:gen_omp:1:4:0.048385
1000:gen_omp:1:4:0.04911
1000:gen_omp:1:4:0.04383
1000:gen_omp:1:4:0.043196
10000:gen_omp:1:4:0.096788
10000:gen_omp:1:4:0.087854
10000:gen_omp:1:4:0.083051
10000:gen_omp:1:4:0.079063
10000:gen_omp:1:4:0.650995
10000:gen_omp:1:4:0.096747
10000:gen_omp:1:4:0.088579
10000:gen_omp:1:4:0.083359
10000:gen_omp:1:4:0.080991
10000:gen_omp:1:4:0.071159
10000:gen_omp:1:4:0.07639
10000:gen_omp:1:4:0.075435
10000:gen_omp:1:4:0.07063
10000:gen_omp:1:4:0.062895
10000:gen_omp:1:4:0.062546
10000:gen_omp:1:4:0.064346
10000:gen_omp:1:4:0.062649
10000:gen_omp:1:4:0.06449
10000:gen_omp:1:4:0.062688
10000:gen_omp:1:4:0.061897
100000:gen_omp:1:4:0.676734
100000:gen_omp:1:4:0.659196
100000:gen_omp:1:4:0.677275
100000:gen_omp:1:4:0.666677
100000:gen_omp:1:4:0.646243
100000:gen_omp:1:4:0.662716
100000:gen_omp:1:4:1.46699
100000:gen_omp:1:4:0.806465
100000:gen_omp:1:4:0.663557
100000:gen_omp:1:4:0.652103
100000:gen_omp:1:4:0.65887
100000:gen_omp:1:4:0.657053
100000:gen_omp:1:4:0.689891
100000:gen_omp:1:4:0.657834
100000:gen_omp:1:4:0.691385
100000:gen_omp:1:4:0.668124
100000:gen_omp:1:4:0.694781
100000:gen_omp:1:4:0.655963
100000:gen_omp:1:4:0.685771
100000:gen_omp:1:4:0.676083
1000000:gen_omp:1:4:6.35046
1000000:gen_omp:1:4:6.37121
1000000:gen_omp:1:4:6.38312
1000000:gen_omp:1:4:6.29115
1000000:gen_omp:1:4:6.34516
1000000:gen_omp:1:4:6.83924
1000000:gen_omp:1:4:6.48741
1000000:gen_omp:1:4:6.32551
1000000:gen_omp:1:4:6.22862
1000000:gen_omp:1:4:6.2678
1000000:gen_omp:1:4:6.29871
1000000:gen_omp:1:4:6.32385
1000000:gen_omp:1:4:6.31226
1000000:gen_omp:1:4:6.3422
1000000:gen_omp:1:4:6.33611
1000000:gen_omp:1:4:6.32019
1000000:gen_omp:1:4:6.3721
1000000:gen_omp:1:4:6.33223
1000000:gen_omp:1:4:6.32945
1000000:gen_omp:1:4:6.31541
10000000:gen_omp:1:4:67.696
10000000:gen_omp:1:4:67.9758
10000000:gen_omp:1:4:68.0001
10000000:gen_omp:1:4:68.0607
10000000:gen_omp:1:4:68.3308
10000000:gen_omp:1:4:67.5805
10000000:gen_omp:1:4:67.6241
10000000:gen_omp:1:4:67.8284
10000000:gen_omp:1:4:67.6987
10000000:gen_omp:1:4:67.6202
10000000:gen_omp:1:4:67.666
10000000:gen_omp:1:4:67.5967
10000000:gen_omp:1:4:67.638
10000000:gen_omp:1:4:67.5679
10000000:gen_omp:1:4:67.5555
10000000:gen_omp:1:4:67.8154
10000000:gen_omp:1:4:67.9595
10000000:gen_omp:1:4:67.9674
10000000:gen_omp:1:4:68.1275
10000000:gen_omp:1:4:68.1124

View File

@ -0,0 +1,120 @@
100:gen_thread:1:4:0.125348
100:gen_thread:1:4:0.125902
100:gen_thread:1:4:0.117258
100:gen_thread:1:4:0.128061
100:gen_thread:1:4:0.130242
100:gen_thread:1:4:0.126233
100:gen_thread:1:4:0.134462
100:gen_thread:1:4:0.12715
100:gen_thread:1:4:0.137542
100:gen_thread:1:4:0.116115
100:gen_thread:1:4:0.109579
100:gen_thread:1:4:0.11054
100:gen_thread:1:4:0.132198
100:gen_thread:1:4:0.121541
100:gen_thread:1:4:0.109221
100:gen_thread:1:4:0.11395
100:gen_thread:1:4:0.110972
100:gen_thread:1:4:0.107542
100:gen_thread:1:4:0.107349
100:gen_thread:1:4:0.108249
1000:gen_thread:1:4:0.148273
1000:gen_thread:1:4:0.167334
1000:gen_thread:1:4:0.158441
1000:gen_thread:1:4:0.150526
1000:gen_thread:1:4:0.147905
1000:gen_thread:1:4:0.160106
1000:gen_thread:1:4:0.165529
1000:gen_thread:1:4:0.153112
1000:gen_thread:1:4:0.152841
1000:gen_thread:1:4:0.155534
1000:gen_thread:1:4:0.154441
1000:gen_thread:1:4:0.165711
1000:gen_thread:1:4:0.162058
1000:gen_thread:1:4:0.174273
1000:gen_thread:1:4:0.158491
1000:gen_thread:1:4:0.168426
1000:gen_thread:1:4:0.170366
1000:gen_thread:1:4:0.17283
1000:gen_thread:1:4:0.166511
1000:gen_thread:1:4:0.16225
10000:gen_thread:1:4:0.237886
10000:gen_thread:1:4:0.24282
10000:gen_thread:1:4:0.233893
10000:gen_thread:1:4:0.211995
10000:gen_thread:1:4:0.200139
10000:gen_thread:1:4:0.195825
10000:gen_thread:1:4:0.185664
10000:gen_thread:1:4:0.188091
10000:gen_thread:1:4:0.219095
10000:gen_thread:1:4:0.236282
10000:gen_thread:1:4:0.223444
10000:gen_thread:1:4:0.210029
10000:gen_thread:1:4:0.22116
10000:gen_thread:1:4:0.196133
10000:gen_thread:1:4:0.192063
10000:gen_thread:1:4:0.217682
10000:gen_thread:1:4:0.218579
10000:gen_thread:1:4:0.195782
10000:gen_thread:1:4:0.197348
10000:gen_thread:1:4:0.186426
100000:gen_thread:1:4:1.04311
100000:gen_thread:1:4:0.885441
100000:gen_thread:1:4:0.996433
100000:gen_thread:1:4:0.970238
100000:gen_thread:1:4:0.753244
100000:gen_thread:1:4:0.776447
100000:gen_thread:1:4:0.758305
100000:gen_thread:1:4:0.754638
100000:gen_thread:1:4:0.745248
100000:gen_thread:1:4:1.07648
100000:gen_thread:1:4:1.00097
100000:gen_thread:1:4:0.770581
100000:gen_thread:1:4:0.861306
100000:gen_thread:1:4:1.07146
100000:gen_thread:1:4:0.961153
100000:gen_thread:1:4:0.966817
100000:gen_thread:1:4:0.780133
100000:gen_thread:1:4:0.745724
100000:gen_thread:1:4:0.751934
100000:gen_thread:1:4:0.767928
1000000:gen_thread:1:4:6.34155
1000000:gen_thread:1:4:6.31426
1000000:gen_thread:1:4:6.1824
1000000:gen_thread:1:4:6.33992
1000000:gen_thread:1:4:6.31163
1000000:gen_thread:1:4:6.17618
1000000:gen_thread:1:4:6.37973
1000000:gen_thread:1:4:6.43594
1000000:gen_thread:1:4:6.38971
1000000:gen_thread:1:4:6.19309
1000000:gen_thread:1:4:6.23812
1000000:gen_thread:1:4:6.40834
1000000:gen_thread:1:4:6.33319
1000000:gen_thread:1:4:6.16702
1000000:gen_thread:1:4:6.3298
1000000:gen_thread:1:4:6.39489
1000000:gen_thread:1:4:6.40665
1000000:gen_thread:1:4:6.3615
1000000:gen_thread:1:4:6.2747
1000000:gen_thread:1:4:6.48043
10000000:gen_thread:1:4:73.451
10000000:gen_thread:1:4:72.7672
10000000:gen_thread:1:4:72.9177
10000000:gen_thread:1:4:72.6552
10000000:gen_thread:1:4:72.7033
10000000:gen_thread:1:4:72.9555
10000000:gen_thread:1:4:72.8948
10000000:gen_thread:1:4:72.6995
10000000:gen_thread:1:4:73.0351
10000000:gen_thread:1:4:73.3785
10000000:gen_thread:1:4:72.8765
10000000:gen_thread:1:4:72.6707
10000000:gen_thread:1:4:72.7158
10000000:gen_thread:1:4:72.749
10000000:gen_thread:1:4:73.2773
10000000:gen_thread:1:4:72.7076
10000000:gen_thread:1:4:73.0119
10000000:gen_thread:1:4:73.0811
10000000:gen_thread:1:4:72.8952
10000000:gen_thread:1:4:73.2266

View File

@ -0,0 +1,120 @@
100:omp:1:4:0.071996
100:omp:1:4:0.08926
100:omp:1:4:0.078705
100:omp:1:4:0.068548
100:omp:1:4:0.076447
100:omp:1:4:0.078912
100:omp:1:4:0.062029
100:omp:1:4:0.082828
100:omp:1:4:0.077958
100:omp:1:4:0.06367
100:omp:1:4:0.065379
100:omp:1:4:0.068666
100:omp:1:4:0.067526
100:omp:1:4:0.071073
100:omp:1:4:0.064258
100:omp:1:4:0.069991
100:omp:1:4:0.073387
100:omp:1:4:0.064259
100:omp:1:4:0.07342
100:omp:1:4:0.077467
1000:omp:1:4:0.040275
1000:omp:1:4:0.041161
1000:omp:1:4:0.041614
1000:omp:1:4:0.040612
1000:omp:1:4:0.042388
1000:omp:1:4:0.04226
1000:omp:1:4:0.041953
1000:omp:1:4:0.041798
1000:omp:1:4:0.042002
1000:omp:1:4:0.042831
1000:omp:1:4:0.042084
1000:omp:1:4:0.043313
1000:omp:1:4:0.043312
1000:omp:1:4:0.042446
1000:omp:1:4:0.041849
1000:omp:1:4:0.043067
1000:omp:1:4:0.044
1000:omp:1:4:0.043509
1000:omp:1:4:0.042942
1000:omp:1:4:0.044362
10000:omp:1:4:0.082898
10000:omp:1:4:0.07773
10000:omp:1:4:0.07523
10000:omp:1:4:0.070774
10000:omp:1:4:0.071422
10000:omp:1:4:0.067534
10000:omp:1:4:0.06534
10000:omp:1:4:0.063645
10000:omp:1:4:0.061465
10000:omp:1:4:0.060589
10000:omp:1:4:0.059092
10000:omp:1:4:0.056946
10000:omp:1:4:0.055485
10000:omp:1:4:0.054203
10000:omp:1:4:0.052041
10000:omp:1:4:0.053101
10000:omp:1:4:0.051001
10000:omp:1:4:0.051323
10000:omp:1:4:0.051902
10000:omp:1:4:0.051324
100000:omp:1:4:0.564698
100000:omp:1:4:0.568473
100000:omp:1:4:0.556976
100000:omp:1:4:0.564384
100000:omp:1:4:0.586273
100000:omp:1:4:0.569299
100000:omp:1:4:0.583644
100000:omp:1:4:0.559
100000:omp:1:4:0.567252
100000:omp:1:4:0.564222
100000:omp:1:4:0.569613
100000:omp:1:4:0.563344
100000:omp:1:4:0.562515
100000:omp:1:4:0.570861
100000:omp:1:4:0.55835
100000:omp:1:4:0.565285
100000:omp:1:4:0.602316
100000:omp:1:4:0.557754
100000:omp:1:4:0.595165
100000:omp:1:4:1.18653
1000000:omp:1:4:5.67962
1000000:omp:1:4:5.58816
1000000:omp:1:4:5.57707
1000000:omp:1:4:5.64112
1000000:omp:1:4:5.63405
1000000:omp:1:4:5.60289
1000000:omp:1:4:5.5645
1000000:omp:1:4:5.64851
1000000:omp:1:4:5.61552
1000000:omp:1:4:5.58098
1000000:omp:1:4:5.58661
1000000:omp:1:4:5.60144
1000000:omp:1:4:5.57184
1000000:omp:1:4:5.59656
1000000:omp:1:4:5.60054
1000000:omp:1:4:5.63172
1000000:omp:1:4:5.9762
1000000:omp:1:4:5.63262
1000000:omp:1:4:5.61453
1000000:omp:1:4:5.60484
10000000:omp:1:4:62.6349
10000000:omp:1:4:63.2779
10000000:omp:1:4:63.0591
10000000:omp:1:4:62.5644
10000000:omp:1:4:63.0543
10000000:omp:1:4:63.0058
10000000:omp:1:4:63.0739
10000000:omp:1:4:62.7382
10000000:omp:1:4:63.2905
10000000:omp:1:4:62.7899
10000000:omp:1:4:62.8154
10000000:omp:1:4:62.6783
10000000:omp:1:4:62.5034
10000000:omp:1:4:62.466
10000000:omp:1:4:63.3671
10000000:omp:1:4:63.3138
10000000:omp:1:4:62.6614
10000000:omp:1:4:62.9909
10000000:omp:1:4:62.8471
10000000:omp:1:4:62.4367

View File

@ -0,0 +1,120 @@
100:seq:1:4:0.000253
100:seq:1:4:0.000274
100:seq:1:4:0.000262
100:seq:1:4:0.000255
100:seq:1:4:0.000252
100:seq:1:4:0.000253
100:seq:1:4:0.000252
100:seq:1:4:0.000252
100:seq:1:4:0.000252
100:seq:1:4:0.000275
100:seq:1:4:0.000252
100:seq:1:4:0.000253
100:seq:1:4:0.000253
100:seq:1:4:0.000253
100:seq:1:4:0.000254
100:seq:1:4:0.00026
100:seq:1:4:0.000254
100:seq:1:4:0.000252
100:seq:1:4:0.000253
100:seq:1:4:0.000288
1000:seq:1:4:0.002496
1000:seq:1:4:0.002497
1000:seq:1:4:0.002489
1000:seq:1:4:0.002479
1000:seq:1:4:0.00248
1000:seq:1:4:0.002535
1000:seq:1:4:0.002534
1000:seq:1:4:0.002534
1000:seq:1:4:0.002555
1000:seq:1:4:0.002519
1000:seq:1:4:0.002481
1000:seq:1:4:0.002484
1000:seq:1:4:0.002491
1000:seq:1:4:0.002552
1000:seq:1:4:0.002495
1000:seq:1:4:0.002497
1000:seq:1:4:0.002545
1000:seq:1:4:0.002488
1000:seq:1:4:0.002489
1000:seq:1:4:0.002497
10000:seq:1:4:0.025644
10000:seq:1:4:0.025433
10000:seq:1:4:0.025441
10000:seq:1:4:0.025534
10000:seq:1:4:0.025527
10000:seq:1:4:0.025387
10000:seq:1:4:0.02543
10000:seq:1:4:0.025434
10000:seq:1:4:0.025667
10000:seq:1:4:0.025494
10000:seq:1:4:0.025405
10000:seq:1:4:0.025628
10000:seq:1:4:0.025417
10000:seq:1:4:0.025451
10000:seq:1:4:0.025437
10000:seq:1:4:0.025446
10000:seq:1:4:0.025374
10000:seq:1:4:0.025345
10000:seq:1:4:0.025584
10000:seq:1:4:0.025427
100000:seq:1:4:0.534952
100000:seq:1:4:0.53719
100000:seq:1:4:0.5309
100000:seq:1:4:0.539343
100000:seq:1:4:0.532971
100000:seq:1:4:0.532034
100000:seq:1:4:0.537069
100000:seq:1:4:0.53949
100000:seq:1:4:0.533811
100000:seq:1:4:0.537677
100000:seq:1:4:0.537396
100000:seq:1:4:0.535862
100000:seq:1:4:0.543119
100000:seq:1:4:0.538745
100000:seq:1:4:0.539738
100000:seq:1:4:0.53306
100000:seq:1:4:0.533759
100000:seq:1:4:0.539996
100000:seq:1:4:0.537008
100000:seq:1:4:0.548399
1000000:seq:1:4:5.40211
1000000:seq:1:4:5.40247
1000000:seq:1:4:5.3663
1000000:seq:1:4:5.39675
1000000:seq:1:4:5.40011
1000000:seq:1:4:5.3855
1000000:seq:1:4:5.42673
1000000:seq:1:4:5.39636
1000000:seq:1:4:5.40687
1000000:seq:1:4:5.36691
1000000:seq:1:4:5.39953
1000000:seq:1:4:5.38254
1000000:seq:1:4:5.41757
1000000:seq:1:4:5.36987
1000000:seq:1:4:5.36659
1000000:seq:1:4:5.39513
1000000:seq:1:4:5.40783
1000000:seq:1:4:5.3503
1000000:seq:1:4:5.38501
1000000:seq:1:4:5.36401
10000000:seq:1:4:61.3558
10000000:seq:1:4:61.2454
10000000:seq:1:4:61.1594
10000000:seq:1:4:61.0866
10000000:seq:1:4:61.1897
10000000:seq:1:4:61.1688
10000000:seq:1:4:61.3311
10000000:seq:1:4:61.2003
10000000:seq:1:4:61.3084
10000000:seq:1:4:61.1808
10000000:seq:1:4:61.3226
10000000:seq:1:4:61.259
10000000:seq:1:4:61.3688
10000000:seq:1:4:61.2104
10000000:seq:1:4:60.6923
10000000:seq:1:4:61.2895
10000000:seq:1:4:61.2155
10000000:seq:1:4:61.3847
10000000:seq:1:4:61.2617
10000000:seq:1:4:61.3472

View File

@ -0,0 +1,120 @@
100:gen_omp:1:6:0.086406
100:gen_omp:1:6:0.077052
100:gen_omp:1:6:0.067029
100:gen_omp:1:6:0.100558
100:gen_omp:1:6:0.093721
100:gen_omp:1:6:0.087943
100:gen_omp:1:6:0.062381
100:gen_omp:1:6:0.095741
100:gen_omp:1:6:0.095075
100:gen_omp:1:6:0.091973
100:gen_omp:1:6:0.045635
100:gen_omp:1:6:0.088715
100:gen_omp:1:6:0.073478
100:gen_omp:1:6:0.097792
100:gen_omp:1:6:0.090863
100:gen_omp:1:6:0.089194
100:gen_omp:1:6:0.083434
100:gen_omp:1:6:0.087038
100:gen_omp:1:6:0.086448
100:gen_omp:1:6:0.085036
1000:gen_omp:1:6:0.100085
1000:gen_omp:1:6:0.069946
1000:gen_omp:1:6:0.108796
1000:gen_omp:1:6:0.071655
1000:gen_omp:1:6:0.11687
1000:gen_omp:1:6:0.068686
1000:gen_omp:1:6:0.11912
1000:gen_omp:1:6:0.090969
1000:gen_omp:1:6:0.110951
1000:gen_omp:1:6:0.096502
1000:gen_omp:1:6:0.094783
1000:gen_omp:1:6:0.069556
1000:gen_omp:1:6:0.115636
1000:gen_omp:1:6:0.108561
1000:gen_omp:1:6:0.104227
1000:gen_omp:1:6:0.099113
1000:gen_omp:1:6:0.067226
1000:gen_omp:1:6:0.111868
1000:gen_omp:1:6:0.085766
1000:gen_omp:1:6:0.106897
10000:gen_omp:1:6:0.148836
10000:gen_omp:1:6:0.117273
10000:gen_omp:1:6:0.146445
10000:gen_omp:1:6:0.108907
10000:gen_omp:1:6:0.131556
10000:gen_omp:1:6:0.166566
10000:gen_omp:1:6:0.147842
10000:gen_omp:1:6:0.136342
10000:gen_omp:1:6:0.135272
10000:gen_omp:1:6:0.124131
10000:gen_omp:1:6:0.123419
10000:gen_omp:1:6:0.153924
10000:gen_omp:1:6:0.113484
10000:gen_omp:1:6:0.159719
10000:gen_omp:1:6:0.107365
10000:gen_omp:1:6:0.125315
10000:gen_omp:1:6:0.158631
10000:gen_omp:1:6:0.108178
10000:gen_omp:1:6:0.17615
10000:gen_omp:1:6:0.111336
100000:gen_omp:1:6:1.26616
100000:gen_omp:1:6:1.48091
100000:gen_omp:1:6:1.45535
100000:gen_omp:1:6:1.59312
100000:gen_omp:1:6:1.38384
100000:gen_omp:1:6:1.44786
100000:gen_omp:1:6:1.47913
100000:gen_omp:1:6:1.39353
100000:gen_omp:1:6:1.5285
100000:gen_omp:1:6:1.42463
100000:gen_omp:1:6:1.39333
100000:gen_omp:1:6:1.38066
100000:gen_omp:1:6:1.49226
100000:gen_omp:1:6:1.5256
100000:gen_omp:1:6:1.49289
100000:gen_omp:1:6:1.43251
100000:gen_omp:1:6:1.51053
100000:gen_omp:1:6:1.55696
100000:gen_omp:1:6:1.42668
100000:gen_omp:1:6:1.38008
1000000:gen_omp:1:6:8.72654
1000000:gen_omp:1:6:9.13053
1000000:gen_omp:1:6:8.406
1000000:gen_omp:1:6:9.02331
1000000:gen_omp:1:6:8.39838
1000000:gen_omp:1:6:8.33127
1000000:gen_omp:1:6:8.48462
1000000:gen_omp:1:6:8.67158
1000000:gen_omp:1:6:7.61185
1000000:gen_omp:1:6:8.61083
1000000:gen_omp:1:6:8.9588
1000000:gen_omp:1:6:9.18044
1000000:gen_omp:1:6:9.1794
1000000:gen_omp:1:6:8.94751
1000000:gen_omp:1:6:7.07553
1000000:gen_omp:1:6:7.69797
1000000:gen_omp:1:6:8.49612
1000000:gen_omp:1:6:8.02488
1000000:gen_omp:1:6:8.26102
1000000:gen_omp:1:6:8.92512
10000000:gen_omp:1:6:81.373
10000000:gen_omp:1:6:81.1184
10000000:gen_omp:1:6:81.0028
10000000:gen_omp:1:6:80.6323
10000000:gen_omp:1:6:81.1819
10000000:gen_omp:1:6:79.8152
10000000:gen_omp:1:6:80.1478
10000000:gen_omp:1:6:81.1297
10000000:gen_omp:1:6:80.0156
10000000:gen_omp:1:6:81.3409
10000000:gen_omp:1:6:81.249
10000000:gen_omp:1:6:80.4047
10000000:gen_omp:1:6:79.931
10000000:gen_omp:1:6:80.6837
10000000:gen_omp:1:6:80.9444
10000000:gen_omp:1:6:80.4201
10000000:gen_omp:1:6:80.2888
10000000:gen_omp:1:6:80.4101
10000000:gen_omp:1:6:80.3211
10000000:gen_omp:1:6:79.8947

View File

@ -0,0 +1,120 @@
100:gen_thread:1:6:0.217013
100:gen_thread:1:6:0.194992
100:gen_thread:1:6:0.206753
100:gen_thread:1:6:0.241566
100:gen_thread:1:6:0.220373
100:gen_thread:1:6:0.237405
100:gen_thread:1:6:0.218288
100:gen_thread:1:6:0.221019
100:gen_thread:1:6:0.262013
100:gen_thread:1:6:0.249194
100:gen_thread:1:6:0.253301
100:gen_thread:1:6:0.233103
100:gen_thread:1:6:0.244119
100:gen_thread:1:6:0.22483
100:gen_thread:1:6:0.230743
100:gen_thread:1:6:0.234113
100:gen_thread:1:6:0.225187
100:gen_thread:1:6:0.226015
100:gen_thread:1:6:0.255239
100:gen_thread:1:6:0.241538
1000:gen_thread:1:6:0.253436
1000:gen_thread:1:6:0.261927
1000:gen_thread:1:6:0.245527
1000:gen_thread:1:6:0.245198
1000:gen_thread:1:6:0.232946
1000:gen_thread:1:6:0.234362
1000:gen_thread:1:6:0.253268
1000:gen_thread:1:6:0.265013
1000:gen_thread:1:6:0.259052
1000:gen_thread:1:6:0.271353
1000:gen_thread:1:6:0.268267
1000:gen_thread:1:6:0.272094
1000:gen_thread:1:6:0.272802
1000:gen_thread:1:6:0.249144
1000:gen_thread:1:6:0.265494
1000:gen_thread:1:6:0.264192
1000:gen_thread:1:6:0.235863
1000:gen_thread:1:6:0.233634
1000:gen_thread:1:6:0.237148
1000:gen_thread:1:6:0.23292
10000:gen_thread:1:6:0.276894
10000:gen_thread:1:6:0.273921
10000:gen_thread:1:6:0.27211
10000:gen_thread:1:6:0.275469
10000:gen_thread:1:6:0.283407
10000:gen_thread:1:6:0.275242
10000:gen_thread:1:6:0.279827
10000:gen_thread:1:6:0.271004
10000:gen_thread:1:6:0.273132
10000:gen_thread:1:6:0.272675
10000:gen_thread:1:6:0.272099
10000:gen_thread:1:6:0.275237
10000:gen_thread:1:6:0.272844
10000:gen_thread:1:6:0.273317
10000:gen_thread:1:6:0.272267
10000:gen_thread:1:6:0.274848
10000:gen_thread:1:6:0.288944
10000:gen_thread:1:6:0.272474
10000:gen_thread:1:6:0.280364
10000:gen_thread:1:6:0.272389
100000:gen_thread:1:6:1.34436
100000:gen_thread:1:6:1.86888
100000:gen_thread:1:6:1.8796
100000:gen_thread:1:6:1.84294
100000:gen_thread:1:6:1.88961
100000:gen_thread:1:6:1.55078
100000:gen_thread:1:6:1.85259
100000:gen_thread:1:6:1.82956
100000:gen_thread:1:6:1.62331
100000:gen_thread:1:6:1.91978
100000:gen_thread:1:6:1.71057
100000:gen_thread:1:6:1.44334
100000:gen_thread:1:6:1.36418
100000:gen_thread:1:6:1.59059
100000:gen_thread:1:6:1.80771
100000:gen_thread:1:6:1.90226
100000:gen_thread:1:6:1.8741
100000:gen_thread:1:6:1.84744
100000:gen_thread:1:6:1.81929
100000:gen_thread:1:6:1.82712
1000000:gen_thread:1:6:7.93675
1000000:gen_thread:1:6:8.02984
1000000:gen_thread:1:6:7.99855
1000000:gen_thread:1:6:8.2248
1000000:gen_thread:1:6:7.46515
1000000:gen_thread:1:6:7.88055
1000000:gen_thread:1:6:8.01981
1000000:gen_thread:1:6:8.1421
1000000:gen_thread:1:6:7.9101
1000000:gen_thread:1:6:8.0861
1000000:gen_thread:1:6:8.11077
1000000:gen_thread:1:6:8.18985
1000000:gen_thread:1:6:7.60048
1000000:gen_thread:1:6:8.26237
1000000:gen_thread:1:6:7.61121
1000000:gen_thread:1:6:8.04496
1000000:gen_thread:1:6:7.89779
1000000:gen_thread:1:6:7.40039
1000000:gen_thread:1:6:7.97991
1000000:gen_thread:1:6:8.02621
10000000:gen_thread:1:6:87.7383
10000000:gen_thread:1:6:85.8329
10000000:gen_thread:1:6:87.2215
10000000:gen_thread:1:6:87.2558
10000000:gen_thread:1:6:86.5752
10000000:gen_thread:1:6:85.1107
10000000:gen_thread:1:6:85.249
10000000:gen_thread:1:6:86.1593
10000000:gen_thread:1:6:87.0084
10000000:gen_thread:1:6:84.1825
10000000:gen_thread:1:6:87.6619
10000000:gen_thread:1:6:85.7827
10000000:gen_thread:1:6:87.0444
10000000:gen_thread:1:6:86.9104
10000000:gen_thread:1:6:85.9316
10000000:gen_thread:1:6:85.892
10000000:gen_thread:1:6:87.9146
10000000:gen_thread:1:6:84.2389
10000000:gen_thread:1:6:85.8378
10000000:gen_thread:1:6:84.9408

View File

@ -0,0 +1,120 @@
100:omp:1:6:0.104806
100:omp:1:6:0.089467
100:omp:1:6:0.092486
100:omp:1:6:0.086439
100:omp:1:6:0.088178
100:omp:1:6:0.050818
100:omp:1:6:0.096514
100:omp:1:6:0.094019
100:omp:1:6:0.088469
100:omp:1:6:0.08522
100:omp:1:6:0.083623
100:omp:1:6:0.054838
100:omp:1:6:0.090662
100:omp:1:6:0.064305
100:omp:1:6:0.091892
100:omp:1:6:0.087316
100:omp:1:6:0.085448
100:omp:1:6:0.07425
100:omp:1:6:0.083889
100:omp:1:6:0.088022
1000:omp:1:6:0.071428
1000:omp:1:6:0.105474
1000:omp:1:6:0.102411
1000:omp:1:6:0.099062
1000:omp:1:6:0.097311
1000:omp:1:6:0.096033
1000:omp:1:6:0.096838
1000:omp:1:6:0.096249
1000:omp:1:6:0.096193
1000:omp:1:6:0.08652
1000:omp:1:6:0.099343
1000:omp:1:6:0.097429
1000:omp:1:6:0.096784
1000:omp:1:6:0.064641
1000:omp:1:6:0.107475
1000:omp:1:6:0.100914
1000:omp:1:6:0.101571
1000:omp:1:6:0.09765
1000:omp:1:6:0.095314
1000:omp:1:6:0.072365
10000:omp:1:6:0.135378
10000:omp:1:6:0.103151
10000:omp:1:6:0.098524
10000:omp:1:6:0.154514
10000:omp:1:6:0.138513
10000:omp:1:6:0.128029
10000:omp:1:6:0.091329
10000:omp:1:6:0.141333
10000:omp:1:6:0.112233
10000:omp:1:6:0.14601
10000:omp:1:6:0.132994
10000:omp:1:6:0.108255
10000:omp:1:6:0.143661
10000:omp:1:6:0.129201
10000:omp:1:6:0.116438
10000:omp:1:6:0.094636
10000:omp:1:6:0.153634
10000:omp:1:6:0.097846
10000:omp:1:6:0.139965
10000:omp:1:6:0.097571
100000:omp:1:6:1.21023
100000:omp:1:6:1.36804
100000:omp:1:6:1.36511
100000:omp:1:6:1.36512
100000:omp:1:6:1.40615
100000:omp:1:6:1.3216
100000:omp:1:6:1.37508
100000:omp:1:6:1.41963
100000:omp:1:6:1.28879
100000:omp:1:6:1.39633
100000:omp:1:6:1.25275
100000:omp:1:6:1.27645
100000:omp:1:6:1.39457
100000:omp:1:6:1.41767
100000:omp:1:6:1.40922
100000:omp:1:6:1.33873
100000:omp:1:6:1.29943
100000:omp:1:6:1.38957
100000:omp:1:6:1.39252
100000:omp:1:6:1.32337
1000000:omp:1:6:8.16777
1000000:omp:1:6:7.12501
1000000:omp:1:6:7.50749
1000000:omp:1:6:7.30439
1000000:omp:1:6:6.96337
1000000:omp:1:6:7.42895
1000000:omp:1:6:7.15167
1000000:omp:1:6:7.50004
1000000:omp:1:6:7.53732
1000000:omp:1:6:7.42723
1000000:omp:1:6:7.45032
1000000:omp:1:6:7.14515
1000000:omp:1:6:7.54439
1000000:omp:1:6:7.51546
1000000:omp:1:6:7.29311
1000000:omp:1:6:7.44425
1000000:omp:1:6:7.65735
1000000:omp:1:6:7.48953
1000000:omp:1:6:7.42283
1000000:omp:1:6:7.391
10000000:omp:1:6:77.6639
10000000:omp:1:6:77.4953
10000000:omp:1:6:78.8727
10000000:omp:1:6:78.6293
10000000:omp:1:6:76.444
10000000:omp:1:6:79.2924
10000000:omp:1:6:78.381
10000000:omp:1:6:77.6905
10000000:omp:1:6:77.0155
10000000:omp:1:6:78.1789
10000000:omp:1:6:77.4339
10000000:omp:1:6:76.6048
10000000:omp:1:6:78.3613
10000000:omp:1:6:77.2553
10000000:omp:1:6:77.4199
10000000:omp:1:6:78.9743
10000000:omp:1:6:77.1103
10000000:omp:1:6:78.8266
10000000:omp:1:6:78.1428
10000000:omp:1:6:78.6725

View File

@ -0,0 +1,120 @@
100:seq:1:6:0.000505
100:seq:1:6:0.000501
100:seq:1:6:0.000499
100:seq:1:6:0.000487
100:seq:1:6:0.000499
100:seq:1:6:0.000492
100:seq:1:6:0.000506
100:seq:1:6:0.000488
100:seq:1:6:0.000474
100:seq:1:6:0.000476
100:seq:1:6:0.000473
100:seq:1:6:0.000492
100:seq:1:6:0.000488
100:seq:1:6:0.000522
100:seq:1:6:0.000529
100:seq:1:6:0.000522
100:seq:1:6:0.000536
100:seq:1:6:0.000522
100:seq:1:6:0.000533
100:seq:1:6:0.000519
1000:seq:1:6:0.005139
1000:seq:1:6:0.005145
1000:seq:1:6:0.004848
1000:seq:1:6:0.004832
1000:seq:1:6:0.004821
1000:seq:1:6:0.004831
1000:seq:1:6:0.004846
1000:seq:1:6:0.004827
1000:seq:1:6:0.00457
1000:seq:1:6:0.004567
1000:seq:1:6:0.004317
1000:seq:1:6:0.004325
1000:seq:1:6:0.004323
1000:seq:1:6:0.004324
1000:seq:1:6:0.004315
1000:seq:1:6:0.004309
1000:seq:1:6:0.004336
1000:seq:1:6:0.004329
1000:seq:1:6:0.004113
1000:seq:1:6:0.003906
10000:seq:1:6:0.038432
10000:seq:1:6:0.03539
10000:seq:1:6:0.025383
10000:seq:1:6:0.025363
10000:seq:1:6:0.025441
10000:seq:1:6:0.025411
10000:seq:1:6:0.02555
10000:seq:1:6:0.02542
10000:seq:1:6:0.025437
10000:seq:1:6:0.025558
10000:seq:1:6:0.025551
10000:seq:1:6:0.025405
10000:seq:1:6:0.025392
10000:seq:1:6:0.025501
10000:seq:1:6:0.025453
10000:seq:1:6:0.02556
10000:seq:1:6:0.025474
10000:seq:1:6:0.025396
10000:seq:1:6:0.025533
10000:seq:1:6:0.025474
100000:seq:1:6:0.537404
100000:seq:1:6:0.537996
100000:seq:1:6:0.540014
100000:seq:1:6:0.536818
100000:seq:1:6:0.540188
100000:seq:1:6:0.549046
100000:seq:1:6:0.53565
100000:seq:1:6:0.545738
100000:seq:1:6:0.542096
100000:seq:1:6:0.537335
100000:seq:1:6:0.534841
100000:seq:1:6:0.546737
100000:seq:1:6:0.539084
100000:seq:1:6:0.537398
100000:seq:1:6:0.538214
100000:seq:1:6:0.527603
100000:seq:1:6:0.534906
100000:seq:1:6:0.531287
100000:seq:1:6:0.532418
100000:seq:1:6:0.536411
1000000:seq:1:6:5.38862
1000000:seq:1:6:5.37697
1000000:seq:1:6:5.38437
1000000:seq:1:6:5.37241
1000000:seq:1:6:5.3685
1000000:seq:1:6:5.37998
1000000:seq:1:6:5.41481
1000000:seq:1:6:5.39985
1000000:seq:1:6:5.40377
1000000:seq:1:6:5.39247
1000000:seq:1:6:5.38987
1000000:seq:1:6:5.42308
1000000:seq:1:6:5.41401
1000000:seq:1:6:5.40076
1000000:seq:1:6:5.36065
1000000:seq:1:6:5.35528
1000000:seq:1:6:5.37869
1000000:seq:1:6:5.36168
1000000:seq:1:6:5.39924
1000000:seq:1:6:5.38399
10000000:seq:1:6:61.1839
10000000:seq:1:6:61.2506
10000000:seq:1:6:61.1693
10000000:seq:1:6:61.3879
10000000:seq:1:6:61.2464
10000000:seq:1:6:61.2939
10000000:seq:1:6:61.2917
10000000:seq:1:6:61.3692
10000000:seq:1:6:61.242
10000000:seq:1:6:61.364
10000000:seq:1:6:61.3257
10000000:seq:1:6:61.3103
10000000:seq:1:6:61.2757
10000000:seq:1:6:61.3052
10000000:seq:1:6:61.3352
10000000:seq:1:6:61.3124
10000000:seq:1:6:61.2978
10000000:seq:1:6:61.2595
10000000:seq:1:6:61.3021
10000000:seq:1:6:61.284

View File

@ -0,0 +1,120 @@
100:gen_omp:1:8:0.118789
100:gen_omp:1:8:0.100657
100:gen_omp:1:8:0.076452
100:gen_omp:1:8:0.085588
100:gen_omp:1:8:0.09385
100:gen_omp:1:8:0.079067
100:gen_omp:1:8:0.083766
100:gen_omp:1:8:0.082831
100:gen_omp:1:8:0.079009
100:gen_omp:1:8:0.081621
100:gen_omp:1:8:0.082046
100:gen_omp:1:8:0.071452
100:gen_omp:1:8:0.125817
100:gen_omp:1:8:0.09575
100:gen_omp:1:8:0.099086
100:gen_omp:1:8:0.082974
100:gen_omp:1:8:0.108154
100:gen_omp:1:8:0.074761
100:gen_omp:1:8:0.073922
100:gen_omp:1:8:0.117514
1000:gen_omp:1:8:0.105536
1000:gen_omp:1:8:0.105544
1000:gen_omp:1:8:0.097997
1000:gen_omp:1:8:0.109944
1000:gen_omp:1:8:0.112085
1000:gen_omp:1:8:0.103967
1000:gen_omp:1:8:0.095693
1000:gen_omp:1:8:0.088274
1000:gen_omp:1:8:0.1286
1000:gen_omp:1:8:0.082084
1000:gen_omp:1:8:0.122974
1000:gen_omp:1:8:0.098827
1000:gen_omp:1:8:0.097724
1000:gen_omp:1:8:0.109593
1000:gen_omp:1:8:0.11024
1000:gen_omp:1:8:0.067599
1000:gen_omp:1:8:0.131189
1000:gen_omp:1:8:0.129829
1000:gen_omp:1:8:0.105518
1000:gen_omp:1:8:0.113975
10000:gen_omp:1:8:0.170551
10000:gen_omp:1:8:0.159201
10000:gen_omp:1:8:0.12145
10000:gen_omp:1:8:0.170754
10000:gen_omp:1:8:0.158252
10000:gen_omp:1:8:0.128007
10000:gen_omp:1:8:0.201033
10000:gen_omp:1:8:0.197063
10000:gen_omp:1:8:0.227783
10000:gen_omp:1:8:0.195037
10000:gen_omp:1:8:0.203144
10000:gen_omp:1:8:0.181624
10000:gen_omp:1:8:0.224616
10000:gen_omp:1:8:0.242781
10000:gen_omp:1:8:0.222128
10000:gen_omp:1:8:0.187205
10000:gen_omp:1:8:0.235146
10000:gen_omp:1:8:0.216116
10000:gen_omp:1:8:0.219843
10000:gen_omp:1:8:0.251048
100000:gen_omp:1:8:1.67566
100000:gen_omp:1:8:1.68477
100000:gen_omp:1:8:1.47728
100000:gen_omp:1:8:1.56296
100000:gen_omp:1:8:1.67432
100000:gen_omp:1:8:1.70472
100000:gen_omp:1:8:1.7056
100000:gen_omp:1:8:1.59525
100000:gen_omp:1:8:1.56419
100000:gen_omp:1:8:1.50729
100000:gen_omp:1:8:1.65109
100000:gen_omp:1:8:1.72418
100000:gen_omp:1:8:1.7162
100000:gen_omp:1:8:1.62048
100000:gen_omp:1:8:1.54186
100000:gen_omp:1:8:1.50817
100000:gen_omp:1:8:1.62787
100000:gen_omp:1:8:1.56212
100000:gen_omp:1:8:1.65203
100000:gen_omp:1:8:1.715
1000000:gen_omp:1:8:7.10571
1000000:gen_omp:1:8:6.6109
1000000:gen_omp:1:8:6.94583
1000000:gen_omp:1:8:6.94548
1000000:gen_omp:1:8:7.29581
1000000:gen_omp:1:8:6.62127
1000000:gen_omp:1:8:6.77311
1000000:gen_omp:1:8:6.90928
1000000:gen_omp:1:8:6.74418
1000000:gen_omp:1:8:6.75154
1000000:gen_omp:1:8:6.66804
1000000:gen_omp:1:8:6.70797
1000000:gen_omp:1:8:7.1332
1000000:gen_omp:1:8:6.71705
1000000:gen_omp:1:8:6.75093
1000000:gen_omp:1:8:6.67212
1000000:gen_omp:1:8:6.93779
1000000:gen_omp:1:8:6.81802
1000000:gen_omp:1:8:6.84767
1000000:gen_omp:1:8:6.66467
10000000:gen_omp:1:8:69.4193
10000000:gen_omp:1:8:69.4737
10000000:gen_omp:1:8:69.6184
10000000:gen_omp:1:8:70.0232
10000000:gen_omp:1:8:70.0169
10000000:gen_omp:1:8:69.7826
10000000:gen_omp:1:8:69.0676
10000000:gen_omp:1:8:69.3179
10000000:gen_omp:1:8:69.7538
10000000:gen_omp:1:8:69.0514
10000000:gen_omp:1:8:69.697
10000000:gen_omp:1:8:69.4851
10000000:gen_omp:1:8:69.4408
10000000:gen_omp:1:8:69.3
10000000:gen_omp:1:8:69.4193
10000000:gen_omp:1:8:69.0917
10000000:gen_omp:1:8:69.434
10000000:gen_omp:1:8:69.3462
10000000:gen_omp:1:8:69.2243
10000000:gen_omp:1:8:69.5571

View File

@ -0,0 +1,120 @@
100:gen_thread:1:8:0.340924
100:gen_thread:1:8:0.389325
100:gen_thread:1:8:0.388857
100:gen_thread:1:8:0.401729
100:gen_thread:1:8:0.410044
100:gen_thread:1:8:0.349126
100:gen_thread:1:8:0.375641
100:gen_thread:1:8:0.38577
100:gen_thread:1:8:0.375497
100:gen_thread:1:8:0.354056
100:gen_thread:1:8:0.402729
100:gen_thread:1:8:0.374463
100:gen_thread:1:8:0.402625
100:gen_thread:1:8:0.397702
100:gen_thread:1:8:0.354205
100:gen_thread:1:8:0.374066
100:gen_thread:1:8:0.389624
100:gen_thread:1:8:0.371744
100:gen_thread:1:8:0.376103
100:gen_thread:1:8:0.395989
1000:gen_thread:1:8:0.437126
1000:gen_thread:1:8:0.396484
1000:gen_thread:1:8:0.392807
1000:gen_thread:1:8:0.430874
1000:gen_thread:1:8:0.41454
1000:gen_thread:1:8:0.42063
1000:gen_thread:1:8:0.451311
1000:gen_thread:1:8:0.400773
1000:gen_thread:1:8:0.371648
1000:gen_thread:1:8:0.384309
1000:gen_thread:1:8:0.392641
1000:gen_thread:1:8:0.401619
1000:gen_thread:1:8:0.378064
1000:gen_thread:1:8:0.404287
1000:gen_thread:1:8:0.392298
1000:gen_thread:1:8:0.365061
1000:gen_thread:1:8:0.383583
1000:gen_thread:1:8:0.419755
1000:gen_thread:1:8:0.363592
1000:gen_thread:1:8:0.403998
10000:gen_thread:1:8:0.472906
10000:gen_thread:1:8:0.440459
10000:gen_thread:1:8:0.428563
10000:gen_thread:1:8:0.454027
10000:gen_thread:1:8:0.425324
10000:gen_thread:1:8:0.418936
10000:gen_thread:1:8:0.434661
10000:gen_thread:1:8:0.44663
10000:gen_thread:1:8:0.44553
10000:gen_thread:1:8:0.402016
10000:gen_thread:1:8:0.416437
10000:gen_thread:1:8:0.419662
10000:gen_thread:1:8:0.41863
10000:gen_thread:1:8:0.439363
10000:gen_thread:1:8:0.414834
10000:gen_thread:1:8:0.426218
10000:gen_thread:1:8:0.423059
10000:gen_thread:1:8:0.427052
10000:gen_thread:1:8:0.437256
10000:gen_thread:1:8:0.427203
100000:gen_thread:1:8:1.3688
100000:gen_thread:1:8:1.51825
100000:gen_thread:1:8:1.49648
100000:gen_thread:1:8:1.57494
100000:gen_thread:1:8:1.5688
100000:gen_thread:1:8:1.48852
100000:gen_thread:1:8:1.52929
100000:gen_thread:1:8:1.77927
100000:gen_thread:1:8:1.75592
100000:gen_thread:1:8:1.6951
100000:gen_thread:1:8:1.75746
100000:gen_thread:1:8:1.74327
100000:gen_thread:1:8:1.76704
100000:gen_thread:1:8:1.7618
100000:gen_thread:1:8:1.81484
100000:gen_thread:1:8:1.81684
100000:gen_thread:1:8:1.81321
100000:gen_thread:1:8:1.74121
100000:gen_thread:1:8:1.73521
100000:gen_thread:1:8:1.78279
1000000:gen_thread:1:8:7.3714
1000000:gen_thread:1:8:6.88339
1000000:gen_thread:1:8:6.97308
1000000:gen_thread:1:8:6.86269
1000000:gen_thread:1:8:7.06999
1000000:gen_thread:1:8:6.93899
1000000:gen_thread:1:8:6.93356
1000000:gen_thread:1:8:7.00021
1000000:gen_thread:1:8:6.90962
1000000:gen_thread:1:8:6.96854
1000000:gen_thread:1:8:6.92895
1000000:gen_thread:1:8:6.99571
1000000:gen_thread:1:8:7.06657
1000000:gen_thread:1:8:6.94186
1000000:gen_thread:1:8:7.51146
1000000:gen_thread:1:8:7.12363
1000000:gen_thread:1:8:6.87104
1000000:gen_thread:1:8:6.78753
1000000:gen_thread:1:8:6.96024
1000000:gen_thread:1:8:7.01816
10000000:gen_thread:1:8:94.011
10000000:gen_thread:1:8:91.7827
10000000:gen_thread:1:8:91.6969
10000000:gen_thread:1:8:92.5384
10000000:gen_thread:1:8:93.1056
10000000:gen_thread:1:8:91.9936
10000000:gen_thread:1:8:93.9685
10000000:gen_thread:1:8:94.1123
10000000:gen_thread:1:8:96.2042
10000000:gen_thread:1:8:92.4209
10000000:gen_thread:1:8:92.4509
10000000:gen_thread:1:8:93.897
10000000:gen_thread:1:8:93.3829
10000000:gen_thread:1:8:93.2242
10000000:gen_thread:1:8:94.5016
10000000:gen_thread:1:8:92.934
10000000:gen_thread:1:8:93.0528
10000000:gen_thread:1:8:94.311
10000000:gen_thread:1:8:94.7616
10000000:gen_thread:1:8:92.3833

View File

@ -0,0 +1,120 @@
100:omp:1:8:0.108723
100:omp:1:8:0.12747
100:omp:1:8:0.102886
100:omp:1:8:0.090248
100:omp:1:8:0.098726
100:omp:1:8:0.073745
100:omp:1:8:0.101237
100:omp:1:8:0.115437
100:omp:1:8:0.09047
100:omp:1:8:0.07396
100:omp:1:8:0.090352
100:omp:1:8:0.091704
100:omp:1:8:0.068921
100:omp:1:8:0.069266
100:omp:1:8:0.117007
100:omp:1:8:0.092639
100:omp:1:8:0.095101
100:omp:1:8:0.092621
100:omp:1:8:0.085
100:omp:1:8:0.086933
1000:omp:1:8:0.105019
1000:omp:1:8:0.102159
1000:omp:1:8:0.112056
1000:omp:1:8:0.108835
1000:omp:1:8:0.097744
1000:omp:1:8:0.106255
1000:omp:1:8:0.10547
1000:omp:1:8:0.086265
1000:omp:1:8:0.117526
1000:omp:1:8:0.099563
1000:omp:1:8:0.100238
1000:omp:1:8:0.097738
1000:omp:1:8:0.09113
1000:omp:1:8:0.094873
1000:omp:1:8:0.11391
1000:omp:1:8:0.098642
1000:omp:1:8:0.083179
1000:omp:1:8:0.082358
1000:omp:1:8:0.084233
1000:omp:1:8:0.137564
10000:omp:1:8:0.197373
10000:omp:1:8:0.197986
10000:omp:1:8:0.181358
10000:omp:1:8:0.170417
10000:omp:1:8:0.201933
10000:omp:1:8:0.194577
10000:omp:1:8:0.164885
10000:omp:1:8:0.210169
10000:omp:1:8:0.191133
10000:omp:1:8:0.196386
10000:omp:1:8:0.179401
10000:omp:1:8:0.20278
10000:omp:1:8:0.219177
10000:omp:1:8:0.21231
10000:omp:1:8:0.215292
10000:omp:1:8:0.199671
10000:omp:1:8:0.18145
10000:omp:1:8:0.204221
10000:omp:1:8:0.192202
10000:omp:1:8:0.169301
100000:omp:1:8:1.29406
100000:omp:1:8:1.45916
100000:omp:1:8:1.50439
100000:omp:1:8:1.4449
100000:omp:1:8:1.49756
100000:omp:1:8:1.49951
100000:omp:1:8:1.51166
100000:omp:1:8:1.45056
100000:omp:1:8:1.51857
100000:omp:1:8:1.50431
100000:omp:1:8:1.44444
100000:omp:1:8:1.48628
100000:omp:1:8:1.50947
100000:omp:1:8:1.4601
100000:omp:1:8:1.39933
100000:omp:1:8:1.41752
100000:omp:1:8:1.52861
100000:omp:1:8:1.51627
100000:omp:1:8:1.45336
100000:omp:1:8:1.5048
1000000:omp:1:8:6.17137
1000000:omp:1:8:6.16269
1000000:omp:1:8:6.01637
1000000:omp:1:8:6.12345
1000000:omp:1:8:6.00212
1000000:omp:1:8:5.9756
1000000:omp:1:8:6.60463
1000000:omp:1:8:6.24685
1000000:omp:1:8:6.16444
1000000:omp:1:8:5.95337
1000000:omp:1:8:5.87794
1000000:omp:1:8:6.05769
1000000:omp:1:8:6.02756
1000000:omp:1:8:5.99745
1000000:omp:1:8:5.91851
1000000:omp:1:8:5.93979
1000000:omp:1:8:5.96755
1000000:omp:1:8:6.17383
1000000:omp:1:8:5.95083
1000000:omp:1:8:6.27899
10000000:omp:1:8:64.7916
10000000:omp:1:8:64.454
10000000:omp:1:8:64.6599
10000000:omp:1:8:65.0596
10000000:omp:1:8:64.4715
10000000:omp:1:8:64.544
10000000:omp:1:8:64.8126
10000000:omp:1:8:64.681
10000000:omp:1:8:64.6679
10000000:omp:1:8:64.5198
10000000:omp:1:8:64.778
10000000:omp:1:8:64.9633
10000000:omp:1:8:64.5196
10000000:omp:1:8:64.6437
10000000:omp:1:8:64.3168
10000000:omp:1:8:64.801
10000000:omp:1:8:64.8734
10000000:omp:1:8:64.5454
10000000:omp:1:8:64.5266
10000000:omp:1:8:64.7706

View File

@ -0,0 +1,120 @@
100:seq:1:8:0.000497
100:seq:1:8:0.000461
100:seq:1:8:0.000472
100:seq:1:8:0.000465
100:seq:1:8:0.000462
100:seq:1:8:0.000469
100:seq:1:8:0.000447
100:seq:1:8:0.000472
100:seq:1:8:0.000448
100:seq:1:8:0.000448
100:seq:1:8:0.00044
100:seq:1:8:0.000436
100:seq:1:8:0.000452
100:seq:1:8:0.000454
100:seq:1:8:0.000464
100:seq:1:8:0.000507
100:seq:1:8:0.000488
100:seq:1:8:0.000501
100:seq:1:8:0.000492
100:seq:1:8:0.000501
1000:seq:1:8:0.00484
1000:seq:1:8:0.004842
1000:seq:1:8:0.00483
1000:seq:1:8:0.004582
1000:seq:1:8:0.004567
1000:seq:1:8:0.004556
1000:seq:1:8:0.004322
1000:seq:1:8:0.004313
1000:seq:1:8:0.004326
1000:seq:1:8:0.004333
1000:seq:1:8:0.004339
1000:seq:1:8:0.004325
1000:seq:1:8:0.004321
1000:seq:1:8:0.004335
1000:seq:1:8:0.004328
1000:seq:1:8:0.00411
1000:seq:1:8:0.00411
1000:seq:1:8:0.003918
1000:seq:1:8:0.00391
1000:seq:1:8:0.003918
10000:seq:1:8:0.035658
10000:seq:1:8:0.029964
10000:seq:1:8:0.025487
10000:seq:1:8:0.025446
10000:seq:1:8:0.025361
10000:seq:1:8:0.025352
10000:seq:1:8:0.025566
10000:seq:1:8:0.025527
10000:seq:1:8:0.025634
10000:seq:1:8:0.025515
10000:seq:1:8:0.025519
10000:seq:1:8:0.025728
10000:seq:1:8:0.025557
10000:seq:1:8:0.025688
10000:seq:1:8:0.025546
10000:seq:1:8:0.02557
10000:seq:1:8:0.025596
10000:seq:1:8:0.025525
10000:seq:1:8:0.025378
10000:seq:1:8:0.02562
100000:seq:1:8:0.538395
100000:seq:1:8:0.532267
100000:seq:1:8:0.539062
100000:seq:1:8:0.535304
100000:seq:1:8:0.537047
100000:seq:1:8:0.532842
100000:seq:1:8:0.532184
100000:seq:1:8:0.53143
100000:seq:1:8:0.533082
100000:seq:1:8:0.535187
100000:seq:1:8:0.540601
100000:seq:1:8:0.535671
100000:seq:1:8:0.533066
100000:seq:1:8:0.533028
100000:seq:1:8:0.535359
100000:seq:1:8:0.533594
100000:seq:1:8:0.535316
100000:seq:1:8:0.532122
100000:seq:1:8:0.535746
100000:seq:1:8:0.541444
1000000:seq:1:8:5.40867
1000000:seq:1:8:5.39121
1000000:seq:1:8:5.38888
1000000:seq:1:8:5.41182
1000000:seq:1:8:5.37186
1000000:seq:1:8:5.38208
1000000:seq:1:8:5.40705
1000000:seq:1:8:5.40229
1000000:seq:1:8:5.40189
1000000:seq:1:8:5.3805
1000000:seq:1:8:5.40417
1000000:seq:1:8:5.38948
1000000:seq:1:8:5.40516
1000000:seq:1:8:5.41558
1000000:seq:1:8:5.37839
1000000:seq:1:8:5.39781
1000000:seq:1:8:5.40217
1000000:seq:1:8:5.37751
1000000:seq:1:8:5.37064
1000000:seq:1:8:5.39752
10000000:seq:1:8:61.2215
10000000:seq:1:8:61.1856
10000000:seq:1:8:61.2439
10000000:seq:1:8:61.3168
10000000:seq:1:8:61.2675
10000000:seq:1:8:61.3151
10000000:seq:1:8:61.2984
10000000:seq:1:8:61.3882
10000000:seq:1:8:61.2554
10000000:seq:1:8:61.418
10000000:seq:1:8:61.2247
10000000:seq:1:8:61.4102
10000000:seq:1:8:61.2489
10000000:seq:1:8:61.4463
10000000:seq:1:8:61.3078
10000000:seq:1:8:61.3545
10000000:seq:1:8:61.2355
10000000:seq:1:8:61.3208
10000000:seq:1:8:61.2932
10000000:seq:1:8:61.269

View File

@ -0,0 +1,200 @@
gen_omp:1:45.7191
gen_omp:1:45.6959
gen_omp:1:45.6752
gen_omp:1:45.6793
gen_omp:1:45.6795
gen_omp:1:45.6773
gen_omp:1:45.672
gen_omp:1:45.6786
gen_omp:1:45.6742
gen_omp:1:45.6799
gen_omp:1:45.6813
gen_omp:1:45.6769
gen_omp:1:45.6741
gen_omp:1:45.679
gen_omp:1:45.6811
gen_omp:1:45.6749
gen_omp:1:45.6701
gen_omp:1:45.6807
gen_omp:1:45.6812
gen_omp:1:45.6877
gen_omp:2:45.834
gen_omp:2:45.8319
gen_omp:2:45.8229
gen_omp:2:45.8048
gen_omp:2:45.8445
gen_omp:2:45.8248
gen_omp:2:45.8165
gen_omp:2:45.8064
gen_omp:2:45.8413
gen_omp:2:45.818
gen_omp:2:45.8134
gen_omp:2:45.826
gen_omp:2:45.8498
gen_omp:2:45.8302
gen_omp:2:45.838
gen_omp:2:45.8112
gen_omp:2:45.8107
gen_omp:2:45.8423
gen_omp:2:45.825
gen_omp:2:45.8178
gen_omp:4:49.7237
gen_omp:4:49.6649
gen_omp:4:49.707
gen_omp:4:49.6432
gen_omp:4:49.6945
gen_omp:4:49.6731
gen_omp:4:49.6736
gen_omp:4:49.7192
gen_omp:4:49.6922
gen_omp:4:49.6898
gen_omp:4:49.7099
gen_omp:4:49.6604
gen_omp:4:49.6987
gen_omp:4:49.6599
gen_omp:4:49.7105
gen_omp:4:49.6689
gen_omp:4:49.7162
gen_omp:4:49.6968
gen_omp:4:49.6561
gen_omp:4:49.6899
gen_omp:6:51.344
gen_omp:6:51.3546
gen_omp:6:51.3075
gen_omp:6:51.3245
gen_omp:6:51.3647
gen_omp:6:51.2735
gen_omp:6:51.3357
gen_omp:6:51.3185
gen_omp:6:51.3452
gen_omp:6:51.3548
gen_omp:6:51.3291
gen_omp:6:51.3285
gen_omp:6:51.3395
gen_omp:6:51.3995
gen_omp:6:51.3232
gen_omp:6:51.3169
gen_omp:6:51.3638
gen_omp:6:51.3748
gen_omp:6:51.3446
gen_omp:6:51.3544
gen_omp:8:51.5259
gen_omp:8:51.5661
gen_omp:8:51.5456
gen_omp:8:51.4913
gen_omp:8:51.5367
gen_omp:8:51.5368
gen_omp:8:51.4301
gen_omp:8:51.5036
gen_omp:8:51.4914
gen_omp:8:51.4864
gen_omp:8:51.4273
gen_omp:8:51.5363
gen_omp:8:51.5027
gen_omp:8:51.5599
gen_omp:8:51.4953
gen_omp:8:51.5596
gen_omp:8:51.5016
gen_omp:8:51.4668
gen_omp:8:51.5571
gen_omp:8:51.548
gen_omp:10:51.7023
gen_omp:10:51.4981
gen_omp:10:51.7646
gen_omp:10:51.5865
gen_omp:10:51.7309
gen_omp:10:51.6957
gen_omp:10:51.6359
gen_omp:10:51.7761
gen_omp:10:51.493
gen_omp:10:51.7321
gen_omp:10:51.6379
gen_omp:10:51.7234
gen_omp:10:51.7454
gen_omp:10:51.6149
gen_omp:10:51.6594
gen_omp:10:51.7029
gen_omp:10:51.7179
gen_omp:10:51.73
gen_omp:10:51.7168
gen_omp:10:51.722
gen_omp:12:51.7948
gen_omp:12:51.9958
gen_omp:12:51.9133
gen_omp:12:51.8933
gen_omp:12:51.9436
gen_omp:12:51.8421
gen_omp:12:51.9344
gen_omp:12:51.9036
gen_omp:12:51.9861
gen_omp:12:51.8511
gen_omp:12:51.9035
gen_omp:12:51.8874
gen_omp:12:51.9267
gen_omp:12:51.7872
gen_omp:12:51.8772
gen_omp:12:51.8572
gen_omp:12:52.0143
gen_omp:12:51.8624
gen_omp:12:52.0192
gen_omp:12:51.8121
gen_omp:14:52.1369
gen_omp:14:52.0997
gen_omp:14:52.18
gen_omp:14:52.097
gen_omp:14:52.1741
gen_omp:14:52.1045
gen_omp:14:52.1886
gen_omp:14:52.0797
gen_omp:14:52.0978
gen_omp:14:52.0415
gen_omp:14:52.0505
gen_omp:14:52.1786
gen_omp:14:52.2193
gen_omp:14:52.0602
gen_omp:14:52.1051
gen_omp:14:52.3598
gen_omp:14:52.2135
gen_omp:14:52.112
gen_omp:14:52.1093
gen_omp:14:52.0793
gen_omp:16:52.4662
gen_omp:16:52.3628
gen_omp:16:52.3503
gen_omp:16:52.4903
gen_omp:16:52.3794
gen_omp:16:52.3378
gen_omp:16:52.2305
gen_omp:16:52.5389
gen_omp:16:52.4322
gen_omp:16:52.5144
gen_omp:16:52.4933
gen_omp:16:52.4482
gen_omp:16:52.2692
gen_omp:16:52.5172
gen_omp:16:52.6644
gen_omp:16:52.4586
gen_omp:16:52.352
gen_omp:16:52.3946
gen_omp:16:52.2738
gen_omp:16:52.5329
gen_omp:18:52.7264
gen_omp:18:53.3835
gen_omp:18:53.7212
gen_omp:18:53.6607
gen_omp:18:53.7224
gen_omp:18:53.5878
gen_omp:18:53.7494
gen_omp:18:53.6663
gen_omp:18:53.7335
gen_omp:18:54.2608
gen_omp:18:53.7146
gen_omp:18:53.7848
gen_omp:18:53.7176
gen_omp:18:53.6559
gen_omp:18:53.6612
gen_omp:18:53.7376
gen_omp:18:53.8391
gen_omp:18:53.6373
gen_omp:18:53.8065
gen_omp:18:53.7587

View File

@ -0,0 +1,200 @@
gen_thread:1:49.5797
gen_thread:1:49.5308
gen_thread:1:49.5523
gen_thread:1:49.528
gen_thread:1:49.5227
gen_thread:1:49.5541
gen_thread:1:49.5397
gen_thread:1:49.5343
gen_thread:1:49.5499
gen_thread:1:49.5414
gen_thread:1:49.5547
gen_thread:1:49.5288
gen_thread:1:49.564
gen_thread:1:49.5373
gen_thread:1:49.5274
gen_thread:1:49.5364
gen_thread:1:49.5346
gen_thread:1:49.5285
gen_thread:1:49.537
gen_thread:1:49.5459
gen_thread:2:47.6685
gen_thread:2:47.6711
gen_thread:2:47.6544
gen_thread:2:47.6549
gen_thread:2:47.668
gen_thread:2:47.6542
gen_thread:2:47.6636
gen_thread:2:47.6641
gen_thread:2:47.6745
gen_thread:2:47.6777
gen_thread:2:47.6857
gen_thread:2:47.6642
gen_thread:2:47.6757
gen_thread:2:47.6794
gen_thread:2:47.729
gen_thread:2:47.6689
gen_thread:2:47.6805
gen_thread:2:47.6777
gen_thread:2:47.6618
gen_thread:2:47.6848
gen_thread:4:50.65
gen_thread:4:50.6324
gen_thread:4:50.636
gen_thread:4:50.6499
gen_thread:4:50.6312
gen_thread:4:50.6553
gen_thread:4:50.6419
gen_thread:4:50.6394
gen_thread:4:50.6694
gen_thread:4:50.6533
gen_thread:4:50.644
gen_thread:4:50.6464
gen_thread:4:50.6441
gen_thread:4:50.6424
gen_thread:4:50.643
gen_thread:4:50.6439
gen_thread:4:50.6474
gen_thread:4:50.6425
gen_thread:4:50.6427
gen_thread:4:50.6462
gen_thread:6:51.9581
gen_thread:6:51.9558
gen_thread:6:51.966
gen_thread:6:51.9587
gen_thread:6:51.9449
gen_thread:6:51.9615
gen_thread:6:51.9592
gen_thread:6:51.9544
gen_thread:6:51.96
gen_thread:6:51.9486
gen_thread:6:51.953
gen_thread:6:51.949
gen_thread:6:51.9606
gen_thread:6:51.9523
gen_thread:6:51.9535
gen_thread:6:51.9386
gen_thread:6:51.9525
gen_thread:6:51.9519
gen_thread:6:51.9476
gen_thread:6:51.9543
gen_thread:8:52.0289
gen_thread:8:52.0321
gen_thread:8:52.008
gen_thread:8:52.0204
gen_thread:8:52.0033
gen_thread:8:52.012
gen_thread:8:52.0057
gen_thread:8:52.0067
gen_thread:8:52.037
gen_thread:8:52.005
gen_thread:8:52.0188
gen_thread:8:52.0057
gen_thread:8:52.0106
gen_thread:8:52.0097
gen_thread:8:52.0192
gen_thread:8:52.0211
gen_thread:8:52.0135
gen_thread:8:51.9639
gen_thread:8:52.0157
gen_thread:8:52.015
gen_thread:10:52.1073
gen_thread:10:52.1174
gen_thread:10:52.14
gen_thread:10:52.1136
gen_thread:10:52.1433
gen_thread:10:52.1174
gen_thread:10:52.0806
gen_thread:10:52.1115
gen_thread:10:52.1297
gen_thread:10:52.1079
gen_thread:10:52.1242
gen_thread:10:52.1187
gen_thread:10:52.1039
gen_thread:10:52.1434
gen_thread:10:52.1051
gen_thread:10:52.1292
gen_thread:10:52.1241
gen_thread:10:52.1332
gen_thread:10:52.1258
gen_thread:10:52.1005
gen_thread:12:52.2605
gen_thread:12:52.2726
gen_thread:12:52.2211
gen_thread:12:52.2878
gen_thread:12:52.2941
gen_thread:12:52.283
gen_thread:12:52.2518
gen_thread:12:52.259
gen_thread:12:52.2492
gen_thread:12:52.2775
gen_thread:12:52.2982
gen_thread:12:52.2459
gen_thread:12:52.2766
gen_thread:12:52.181
gen_thread:12:52.2297
gen_thread:12:52.2869
gen_thread:12:52.2167
gen_thread:12:52.2796
gen_thread:12:52.2584
gen_thread:12:52.2922
gen_thread:14:52.5473
gen_thread:14:52.5256
gen_thread:14:52.5335
gen_thread:14:52.5245
gen_thread:14:52.52
gen_thread:14:52.4591
gen_thread:14:52.4829
gen_thread:14:52.4357
gen_thread:14:52.4726
gen_thread:14:52.5129
gen_thread:14:52.4604
gen_thread:14:52.5251
gen_thread:14:52.4958
gen_thread:14:52.5449
gen_thread:14:52.5534
gen_thread:14:52.5151
gen_thread:14:52.4872
gen_thread:14:52.4801
gen_thread:14:52.4673
gen_thread:14:52.4794
gen_thread:16:52.7894
gen_thread:16:52.783
gen_thread:16:52.7788
gen_thread:16:52.7692
gen_thread:16:52.86
gen_thread:16:52.7942
gen_thread:16:52.751
gen_thread:16:52.8877
gen_thread:16:52.7587
gen_thread:16:52.7398
gen_thread:16:52.8216
gen_thread:16:52.787
gen_thread:16:52.7709
gen_thread:16:52.6919
gen_thread:16:52.7605
gen_thread:16:52.7436
gen_thread:16:52.745
gen_thread:16:52.7906
gen_thread:16:52.7986
gen_thread:16:52.844
gen_thread:18:53.0717
gen_thread:18:53.0608
gen_thread:18:53.0835
gen_thread:18:53.2325
gen_thread:18:53.4822
gen_thread:18:53.4962
gen_thread:18:53.4686
gen_thread:18:53.5322
gen_thread:18:53.5331
gen_thread:18:53.5227
gen_thread:18:53.5605
gen_thread:18:53.5785
gen_thread:18:53.5935
gen_thread:18:53.581
gen_thread:18:53.5893
gen_thread:18:53.6062
gen_thread:18:53.6778
gen_thread:18:53.636
gen_thread:18:53.6488
gen_thread:18:53.6143

View File

@ -0,0 +1,200 @@
omp:1:45.7357
omp:1:45.6883
omp:1:45.6865
omp:1:45.6844
omp:1:45.6776
omp:1:45.7003
omp:1:45.681
omp:1:45.6843
omp:1:45.6906
omp:1:45.6861
omp:1:45.6837
omp:1:45.6805
omp:1:45.6875
omp:1:45.6805
omp:1:45.6846
omp:1:45.6786
omp:1:45.6734
omp:1:45.6794
omp:1:45.6837
omp:1:45.7068
omp:2:45.8326
omp:2:45.8295
omp:2:45.8087
omp:2:45.8297
omp:2:45.8169
omp:2:45.8314
omp:2:45.8006
omp:2:45.8125
omp:2:45.8167
omp:2:45.8376
omp:2:45.8056
omp:2:45.8236
omp:2:45.8261
omp:2:45.8141
omp:2:45.8343
omp:2:45.8137
omp:2:45.8459
omp:2:45.8224
omp:2:45.8344
omp:2:45.8216
omp:4:49.7087
omp:4:49.6435
omp:4:49.6838
omp:4:49.6576
omp:4:49.6977
omp:4:49.6882
omp:4:49.6872
omp:4:49.7013
omp:4:49.6612
omp:4:49.7083
omp:4:49.6807
omp:4:49.7016
omp:4:49.6912
omp:4:49.697
omp:4:49.6578
omp:4:49.6815
omp:4:49.6476
omp:4:49.7094
omp:4:49.7128
omp:4:49.6767
omp:6:51.3825
omp:6:51.3752
omp:6:51.349
omp:6:51.3089
omp:6:51.3242
omp:6:51.3392
omp:6:51.2991
omp:6:51.3295
omp:6:51.3093
omp:6:51.3718
omp:6:51.3472
omp:6:51.2813
omp:6:51.3272
omp:6:51.3535
omp:6:51.2488
omp:6:51.3627
omp:6:51.2711
omp:6:51.3754
omp:6:51.276
omp:6:51.3427
omp:8:51.5643
omp:8:51.4862
omp:8:51.5587
omp:8:51.554
omp:8:51.5317
omp:8:51.4571
omp:8:51.4816
omp:8:51.5629
omp:8:51.4244
omp:8:51.5424
omp:8:51.4998
omp:8:51.529
omp:8:51.5665
omp:8:51.5768
omp:8:51.5585
omp:8:51.5341
omp:8:51.4716
omp:8:51.6132
omp:8:51.4219
omp:8:51.4883
omp:10:51.7992
omp:10:51.5919
omp:10:51.7654
omp:10:51.6212
omp:10:51.6884
omp:10:51.7546
omp:10:51.7344
omp:10:51.7494
omp:10:51.6435
omp:10:51.6505
omp:10:51.6489
omp:10:51.7358
omp:10:51.7449
omp:10:51.7101
omp:10:51.6583
omp:10:51.6155
omp:10:51.4979
omp:10:51.7856
omp:10:51.6735
omp:10:51.6534
omp:12:51.9379
omp:12:51.9491
omp:12:51.9544
omp:12:51.8284
omp:12:51.9142
omp:12:52.0903
omp:12:51.8472
omp:12:52.0148
omp:12:51.9184
omp:12:51.8539
omp:12:51.8266
omp:12:51.9485
omp:12:51.8694
omp:12:51.981
omp:12:51.7983
omp:12:51.9103
omp:12:51.8441
omp:12:51.9535
omp:12:51.8935
omp:12:52.0738
omp:14:51.9736
omp:14:52.2929
omp:14:52.1712
omp:14:52.1499
omp:14:52.212
omp:14:52.3327
omp:14:52.1292
omp:14:52.2435
omp:14:52.0337
omp:14:52.3092
omp:14:52.1153
omp:14:52.1584
omp:14:52.1721
omp:14:52.1981
omp:14:52.0162
omp:14:52.2888
omp:14:52.0987
omp:14:52.2448
omp:14:52.146
omp:14:52.1082
omp:16:52.402
omp:16:52.5233
omp:16:52.5283
omp:16:52.2721
omp:16:52.5828
omp:16:52.5883
omp:16:52.421
omp:16:52.2932
omp:16:52.4741
omp:16:52.339
omp:16:52.3635
omp:16:52.4886
omp:16:52.3593
omp:16:52.465
omp:16:52.5404
omp:16:52.5648
omp:16:52.3201
omp:16:52.1461
omp:16:52.4488
omp:16:52.3938
omp:18:52.8147
omp:18:52.8862
omp:18:53.4763
omp:18:53.6126
omp:18:53.6759
omp:18:53.541
omp:18:53.5946
omp:18:53.6125
omp:18:53.5824
omp:18:53.7207
omp:18:53.6791
omp:18:53.8307
omp:18:53.8283
omp:18:53.7807
omp:18:53.6966
omp:18:53.5535
omp:18:53.6908
omp:18:53.7789
omp:18:53.6238
omp:18:53.7812

View File

@ -0,0 +1,200 @@
seq:1:45.4742
seq:1:45.4225
seq:1:45.4195
seq:1:45.4216
seq:1:45.42
seq:1:45.4196
seq:1:45.426
seq:1:45.4135
seq:1:45.4258
seq:1:45.4193
seq:1:45.4156
seq:1:45.4226
seq:1:45.4172
seq:1:45.4238
seq:1:45.4158
seq:1:45.4216
seq:1:45.4203
seq:1:45.4208
seq:1:45.4216
seq:1:45.4178
seq:2:45.4793
seq:2:45.4258
seq:2:45.4214
seq:2:45.4125
seq:2:45.4212
seq:2:45.4153
seq:2:45.443
seq:2:45.4278
seq:2:45.4299
seq:2:45.4205
seq:2:45.4274
seq:2:45.4208
seq:2:45.4216
seq:2:45.4302
seq:2:45.4209
seq:2:45.5463
seq:2:45.4325
seq:2:45.4295
seq:2:45.4262
seq:2:45.4228
seq:4:45.4309
seq:4:45.4258
seq:4:45.425
seq:4:45.4234
seq:4:45.4274
seq:4:45.4217
seq:4:45.4335
seq:4:45.4267
seq:4:45.4334
seq:4:45.4196
seq:4:45.426
seq:4:45.4294
seq:4:45.4277
seq:4:45.4298
seq:4:45.4295
seq:4:45.422
seq:4:45.4251
seq:4:45.4257
seq:4:45.4342
seq:4:45.4285
seq:6:45.4225
seq:6:45.4193
seq:6:45.418
seq:6:45.4345
seq:6:45.4276
seq:6:45.4272
seq:6:45.4262
seq:6:45.4285
seq:6:45.4253
seq:6:45.4296
seq:6:45.4286
seq:6:45.4218
seq:6:45.4262
seq:6:45.4259
seq:6:45.4263
seq:6:45.446
seq:6:45.424
seq:6:45.4264
seq:6:45.4292
seq:6:45.4294
seq:8:45.435
seq:8:45.4504
seq:8:45.4254
seq:8:45.4279
seq:8:45.4223
seq:8:45.424
seq:8:45.428
seq:8:45.4206
seq:8:45.4282
seq:8:45.4356
seq:8:45.42
seq:8:45.4243
seq:8:45.4298
seq:8:45.4352
seq:8:45.4304
seq:8:45.4273
seq:8:45.4316
seq:8:45.4259
seq:8:45.4211
seq:8:45.4303
seq:10:45.4363
seq:10:45.4225
seq:10:45.4244
seq:10:45.4323
seq:10:45.4329
seq:10:45.4299
seq:10:45.4263
seq:10:45.4331
seq:10:45.4263
seq:10:45.4272
seq:10:45.4225
seq:10:45.4201
seq:10:45.4251
seq:10:45.4378
seq:10:45.4333
seq:10:45.4196
seq:10:45.4234
seq:10:45.4236
seq:10:45.426
seq:10:45.4211
seq:12:45.4313
seq:12:45.4336
seq:12:45.4196
seq:12:45.425
seq:12:45.4235
seq:12:45.42
seq:12:45.4505
seq:12:45.4289
seq:12:45.4245
seq:12:45.4262
seq:12:45.4297
seq:12:45.4315
seq:12:45.4371
seq:12:45.4204
seq:12:45.4338
seq:12:45.4207
seq:12:45.4292
seq:12:45.4297
seq:12:45.4159
seq:12:45.4204
seq:14:45.4302
seq:14:45.4241
seq:14:45.4178
seq:14:45.4302
seq:14:45.4164
seq:14:45.4266
seq:14:45.4248
seq:14:45.4289
seq:14:45.4227
seq:14:45.4299
seq:14:45.422
seq:14:45.4269
seq:14:45.4302
seq:14:45.4245
seq:14:45.4466
seq:14:45.4302
seq:14:45.4283
seq:14:45.4263
seq:14:45.4233
seq:14:45.4304
seq:16:45.4481
seq:16:45.4257
seq:16:45.4252
seq:16:45.4232
seq:16:45.4319
seq:16:45.4213
seq:16:45.4281
seq:16:45.429
seq:16:45.4367
seq:16:45.4273
seq:16:45.4309
seq:16:45.4315
seq:16:45.4331
seq:16:45.4255
seq:16:45.4277
seq:16:45.4274
seq:16:45.4159
seq:16:45.5484
seq:16:45.4215
seq:16:45.4299
seq:18:45.4272
seq:18:45.4338
seq:18:45.4201
seq:18:45.4289
seq:18:45.4325
seq:18:45.428
seq:18:45.4202
seq:18:45.425
seq:18:45.4282
seq:18:45.4238
seq:18:45.4243
seq:18:45.4393
seq:18:45.4261
seq:18:45.4241
seq:18:45.4351
seq:18:45.4195
seq:18:45.3006
seq:18:45.4752
seq:18:45.4254
seq:18:45.4123

2
rtbenchmarks/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
data_basic/
data_imgpro/

113
rtbenchmarks/plot_basic Executable file
View File

@ -0,0 +1,113 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os, sys
sys.path.append(os.path.abspath(os.path.dirname(os.path.abspath(__file__))+"/../scripts"))
import fileinput
import numpy as np
import matplotlib as mpl
show = len(sys.argv) > 1 and sys.argv[1] == 'show'
if not show:
mpl.use('pgf')
import matplotlib.pyplot as plt
import matplotlib.lines as lines
from common import set_size, config_plt, get_colors, fix_log_rects
config_plt()
def loadData(fn):
content = []
with open(fn) as f:
content = f.readlines()
values = {}
for line in content:
n, method, sample, ncores, strtime = [x for x in line.split(':')]
time = float(strtime)
if method != "seq":
time = time/float(ncores)
if not n in values:
values[n] = []
values[n].append(time);
return values
def figSize(title, xlabel, xticks, output, datasrcs, error=False):
fig = plt.figure()
plt.title(title)
plt.xlabel(xlabel)
plt.ylabel(u"temps (s)")
plt.xticks(xticks)
plt.xscale('log')
plt.yscale('log')
nd = len(datasrcs)
width = 3.5
pos = .5-.5*nd
for f, label in datasrcs:
values = loadData(f)
barcolor, errcolor = get_colors(['seq', 'omp', 'gen_omp', 'gen_thread'], label)
for k, a in values.items():
x = int(k)
m = np.mean(a)
s = 2.5758 * np.std(a) / np.sqrt(len(a)) # confiance 99 %
x = x * ((20+width)/(20-width))**pos
p = np.log10(x)
lwidth = width * 10**(p-1)
bar = plt.bar(x, m, width=lwidth, color=barcolor, label=label)
fix_log_rects(bar, 1e-4)
if error:
plt.errorbar(x, m, s, elinewidth=1.5, capsize=2, ecolor=errcolor)
label=''
pos = pos + 1
plt.legend(bbox_to_anchor=(.38, 1))
fig.set_size_inches(set_size(455.24408, .8))
if not show:
plt.savefig(output, format='pdf', bbox_inches='tight')
return plt
# script
plts = []
plt = figSize(u"", u"taille des données", [1e2, 1e3, 1e4, 1e5, 1e6, 1e7],
"plots/rt_seq.pdf", [
['data_basic/rt_seq_seq', 'seq'],
['data_basic/rt_seq_gen_omp', 'gen_omp'],
['data_basic/rt_seq_gen_thread', 'gen_thread'],
],
error=True
)
plts.append(plt)
for cores in [1, 2, 4, 6, 8, 10, 12, 14, 16, 18]:
plt = figSize(u"", u"taille des données", [1e2, 1e3, 1e4, 1e5, 1e6, 1e7],
"plots/rt_par_"+str(cores)+".pdf", [
['data_basic/rt_size_'+str(cores)+'_seq', 'seq'],
['data_basic/rt_size_'+str(cores)+'_omp', 'omp'],
['data_basic/rt_size_'+str(cores)+'_gen_omp', 'gen_omp'],
['data_basic/rt_size_'+str(cores)+'_gen_thread', 'gen_thread'],
],
error=True
)
plts.append(plt)
if show:
for plt in plts:
plt.show()

147
rtbenchmarks/plot_imgpro Executable file
View File

@ -0,0 +1,147 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os, sys
sys.path.append(os.path.abspath(os.path.dirname(os.path.abspath(__file__))+"/../scripts"))
import fileinput
import numpy as np
import matplotlib as mpl
show = len(sys.argv) > 1 and sys.argv[1] == 'show'
if not show:
mpl.use('pgf')
import matplotlib.pyplot as plt
import matplotlib.lines as lines
from common import set_size, config_plt, get_colors
config_plt()
def loadData(fn):
content = []
with open(fn) as f:
content = f.readlines()
values = {}
for line in content:
method, ncores, strtime = [x for x in line.split(':')]
time = float(strtime)
if method != "seq":
time = time/float(ncores)
if not ncores in values:
values[ncores] = []
values[ncores].append(time);
return values
def figCores(title, xlabel, xticks, output, datasrcs, error=False):
fig = plt.figure()
plt.title(title)
plt.xlabel(xlabel)
plt.ylabel(u"temps (s)")
plt.xticks(xticks)
nd = len(datasrcs)
width = .4
pos = .5-.5*nd
for f, label in datasrcs:
values = loadData(f)
barcolor, errcolor = get_colors(['seq', 'omp', 'gen_omp', 'gen_thread'], label)
if "1" in values:
values.pop("1")
for k, a in values.items():
x = int(k)
m = np.mean(a)
s = 2.5758 * np.std(a) / np.sqrt(len(a)) # confiance 99 %
x = x + pos*width
plt.bar(x, m, width=width, color=barcolor, label=label)
if error:
plt.errorbar(x, m, s, elinewidth=.8, capsize=1, ecolor=errcolor)
label=''
pos = pos + 1
plt.legend(bbox_to_anchor=(1, 1))
fig.set_size_inches(set_size(455.24408, .8))
if not show:
plt.savefig(output, format='pdf', bbox_inches='tight')
return plt
def figSpeedUp(title, xlabel, xticks, output, basetime, datasrcs):
fig = plt.figure()
plt.title(title)
plt.xlabel(xlabel)
plt.ylabel(u"accélération")
plt.xticks(xticks)
nd = len(datasrcs)
width = .4
pos = .5-.5*nd
for f, label in datasrcs:
values = loadData(f)
barcolor, errcolor = get_colors(['seq', 'omp', 'gen_omp', 'gen_thread'], label)
if "1" in values:
values.pop("1")
for k, a in values.items():
x = int(k)
m = basetime/np.mean(a)
x = x + pos*width
plt.bar(x, m, width=width, color=barcolor, label=label)
label=''
pos = pos + 1
plt.legend(bbox_to_anchor=(0.38, 1))
fig.set_size_inches(set_size(455.24408, .8))
if not show:
plt.savefig(output, format='pdf', bbox_inches='tight')
return plt
# script
values = loadData('data_imgpro/rt_cores_seq')
basetime = np.mean(values["1"])
plts = []
plt = figCores(u"", u"nombre de cœurs", [2, 4, 6, 8, 10, 12, 14, 16, 18],
"plots/rt_cores.pdf", [
# ['data_imgpro/rt_cores_seq', 'seq'],
['data_imgpro/rt_cores_gen_omp', 'omp'],
['data_imgpro/rt_cores_gen_omp', 'gen_omp'],
['data_imgpro/rt_cores_gen_thread', 'gen_thread'],
],
error=False
)
plts.append(plt)
plt = figSpeedUp(u"", u"nombre de cœurs", [2, 4, 6, 8, 10, 12, 14, 16, 18],
"plots/rt_speedup.pdf", basetime, [
['data_imgpro/rt_cores_gen_omp', 'omp'],
['data_imgpro/rt_cores_gen_omp', 'gen_omp'],
['data_imgpro/rt_cores_gen_thread', 'gen_thread'],
]
)
plts.append(plt)
if show:
for plt in plts:
plt.show()

79
rtbenchmarks/run_rt_basic Executable file
View File

@ -0,0 +1,79 @@
#!/bin/bash
binary=./release/benchmarks/basic
preload="LD_PRELOAD=~bachelet/local/kephren/lib64/libstdc++.so.6"
repeat=20
outdir="rtbenchmarks/data_basic"
[ -x "${binary}" ] || exit 1
run() {
coreset=$1
size=$2
method=$3
sample=$4
ncores=$5
prefix="${size}:${method}:${sample}:${ncores}"
for i in $(seq ${repeat}); do
t=$(eval "${preload} taskset -c ${coreset} ${binary} ${size} ${method} ${sample} ${ncores}"|cut -d' ' -f2)
echo "${prefix}:${t}"
done
}
benchSeq() {
sizes=(100 1000 10000 100000 1000000 10000000)
coreset=0
sample=0 # seq
ncores=1
echo "---- benchSeq ----"
for method in seq omp gen_omp gen_thread; do
echo "==== ${method}"
for size in ${sizes[@]}; do
run "${coreset}" "${size}" "${method}" "${sample}" "${ncores}"
done|tee "${outdir}/rt_seq_${method}"
done
}
benchCores() {
cores=(1 2 4 6 8 10 12 14 16 18)
size=10000000
sample=1 # par
echo "---- benchCores ----"
for method in omp gen_omp gen_thread; do
echo "==== ${method}"
for ncores in ${cores[@]}; do
maxcore=$((ncores*4 - 1))
coreset="$(seq -s, 0 4 ${maxcore})"
run "${coreset}" "${size}" "${method}" "${sample}" "${ncores}"
done|tee "${outdir}/rt_cores_${method}"
done
}
benchSize() {
sizes=(100 1000 10000 100000 1000000 10000000)
ncores=$1
maxcore=$((ncores*4 - 1))
coreset="$(seq -s, 0 4 ${maxcores})"
sample=1 # par
echo "---- benchSize (ncores: ${ncores}) ----"
for method in seq omp gen_omp gen_thread; do
echo "==== ${method}"
for size in ${sizes[@]}; do
run "${coreset}" "${size}" "${method}" "${sample}" "${ncores}"
done|tee "${outdir}/rt_size_${ncores}_${method}"
done
}
eval "$*"

38
rtbenchmarks/run_rt_imgpro Executable file
View File

@ -0,0 +1,38 @@
#!/bin/bash
binary=./release/benchmarks/imgpro
preload="LD_PRELOAD=~bachelet/local/kephren/lib64/libstdc++.so.6"
repeat=20
outdir="rtbenchmarks/data_imgpro"
[ -x "${binary}" ] || exit 1
run() {
coreset=$1
method=$2
ncores=$3
prefix="${method}:${ncores}"
for i in $(seq ${repeat}); do
t=$(eval "${preload} taskset -c ${coreset} ${binary} ${size} ${method} ${sample} ${ncores}"|cut -d' ' -f2)
echo "${prefix}:${t}"
done
}
benchCores() {
cores=(1 2 4 6 8 10 12 14 16 18)
echo "---- benchCores ----"
for method in seq omp gen_omp gen_thread; do
echo "==== ${method}"
for ncores in ${cores[@]}; do
maxcore=$((ncores*4 - 1))
coreset="$(seq -s, 0 4 ${maxcore})"
run "${coreset}" "${method}" "${ncores}"
done|tee "${outdir}/rt_cores_${method}"
done
}
eval "$*"

102
scripts/benchmark Executable file
View File

@ -0,0 +1,102 @@
#!/bin/bash
binary=./release/benchmarks/basic
[ -x "${binary}" ] || exit 1
#### Utilities
measure() {
coreset=$1
size=$2
method=$3
sample=$4
ncores=$5
t=$(eval "taskset -c ${coreset} ${binary} ${size} ${method} ${sample}"|cut -d' ' -f2)
echo "${t}"
}
csv() {
echo "$*"|tr ' ' ','
}
## benchmarks
#### No parallelism, sequential/generic, variable array sizes
bSeq() {
method=0
sizes=(100 1000 10000 100000 1000000)
coreset=0
cores=1
for size in ${sizes[@]}; do
ts_seq=($(measure "${coreset}" "${size}" seq $method $cores))
ts_gen_omp=($(measure "${coreset}" "${size}" gen_omp $method $cores))
ts_gen_thread=($(measure "${coreset}" "${size}" gen_thread $method $cores))
echo "$size ; $ts_seq ; $ts_gen_omp ; $ts_gen_thread"
done
}
#### Fixed coreset, omp/generic, variable array sizes
bSizes() {
method=$1
sizes=(100 1000 10000 100000 1000000)
coreset="0,4,8,12,16,20,24,28"
cores=8
for size in ${sizes[@]}; do
ts_seq=($(measure "${coreset}" "${size}" seq $method $cores))
ts_omp=($(measure "${coreset}" "${size}" omp $method $cores))
ts_gen_omp=($(measure "${coreset}" "${size}" gen_omp $method $cores))
ts_gen_thread=($(measure "${coreset}" "${size}" gen_thread $method $cores))
ts_omp2=`bc <<< "scale=6; $ts_omp/$cores"`
ts_gen_omp2=`bc <<< "scale=6; $ts_gen_omp/$cores"`
ts_gen_thread2=`bc <<< "scale=6; $ts_gen_thread/$cores"`
echo "$size ; $ts_seq ; $ts_omp ; $ts_omp2 ; $ts_gen_omp ; $ts_gen_omp2 ; $ts_gen_thread ; $ts_gen_thread2"
done
}
#### Fixed array size, omp/generic, variable coresets
bCores() {
method=$1
size=100000
coresets=("0" "0,4" "0,4,8,12" "0,4,8,12,16,20" "0,4,8,12,16,20,24,28" "0,4,8,12,16,20,24,28,32,36" "0,4,8,12,16,20,24,28,32,36,40,44" "0,4,8,12,16,20,24,28,32,36,40,44,48,52" "0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60")
cores=1
for coreset in ${coresets[@]}; do
ts_seq=($(measure "${coreset}" "${size}" seq $method $cores))
ts_omp=($(measure "${coreset}" "${size}" omp $method $cores))
ts_gen_omp=($(measure "${coreset}" "${size}" gen_omp $method $cores))
ts_gen_thread=($(measure "${coreset}" "${size}" gen_thread $method $cores))
ts_omp2=`bc <<< "scale=6; $ts_omp/$cores"`
ts_gen_omp2=`bc <<< "scale=6; $ts_gen_omp/$cores"`
ts_gen_thread2=`bc <<< "scale=6; $ts_gen_thread/$cores"`
echo "$cores ; $ts_seq ; $ts_omp ; $ts_omp2 ; $ts_gen_omp ; $ts_gen_omp2 ; $ts_gen_thread ; $ts_gen_thread2"
if [ $cores == 1 ]; then
cores=2
else
cores=$[cores+2]
fi
done
}
bCores 1 | tee ./scripts/result_cores_1.csv
./scripts/result_cores_1.plot
bCores 2 | tee scripts/result_cores_2.csv
./scripts/result_cores_2.plot
bSizes 1 | tee scripts/result_sizes_1.csv
./scripts/result_sizes_1.plot
bSizes 2 | tee scripts/result_sizes_2.csv
./scripts/result_sizes_2.plot
bSeq | tee scripts/result_seq.csv
./scripts/result_seq.plot

59
scripts/common.py Normal file
View File

@ -0,0 +1,59 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import matplotlib.lines as lines
def set_size(width, fraction=1):
""" Set aesthetic figure dimensions to avoid scaling in latex.
Parameters
----------
width: float
Width in pts (\\the\\textwidth)
fraction: float
Fraction of the width which you wish the figure to occupy
Returns
-------
fig_dim: tuple
Dimensions of figure in inches
"""
# Width of figure
fig_width_pt = width * fraction
# Convert from pt to inches
inches_per_pt = 1 / 72.27
# Golden ratio to set aesthetic figure height
golden_ratio = (5 ** 0.5 - 1) / 2
# Figure width in inches
fig_width_in = fig_width_pt * inches_per_pt
# Figure height in inches
fig_height_in = fig_width_in * golden_ratio
return fig_width_in, fig_height_in
def config_plt():
plt.rc('font', size=11, family='Latin Modern Roman')
plt.rc('text', usetex=True)
plt.rc('xtick', labelsize=11)
plt.rc('ytick', labelsize=11)
plt.rc('axes', labelsize=11)
def get_colors(l, v):
color_palette = [
'#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd',
'#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf',
]
return color_palette[l.index(v)], '#888888'
def fix_log_rects(bar, e = 1e-4):
for rect in bar.patches:
if rect.get_y() == 0:
rect.set_y(e)
rect.set_height(rect.get_height() - e)

14
scripts/red_expr Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
cat|sed -r \
-e 's/.*Ts = \{[A-Za-z0-9_]+<(.*)>\};.*/\1/g' \
-e 's/Expression/E/g' \
-e 's/op::Comma/#/g' \
-e 's/op::Assign/=/g' \
-e 's/op::Addition/+/g' \
-e 's/op::Multiplication/*/g' \
-e 's/IntToType<(.)ul>/\1/g' \
-e 's/IteratorImpl<>/IT/g' \
-e 's/IteratorImpl<(.) >/\1/g' \
-e 's/int\*, //g' \
-e 's/, IteratorImpl<> //g'

24
scripts/result_cores_1.plot Executable file
View File

@ -0,0 +1,24 @@
#!/usr/bin/gnuplot
set encoding iso_8859_1
set terminal postscript eps enhanced
set notitle
set xlabel "Number of Cores"
set ylabel "Execution Time"
set output "./scripts/result_cores_1.eps"
set key top left
set style line 1 lt 1 lw 3
set style line 2 lt 7 lw 3
set style line 3 lt 2 lw 3
set style line 4 lt 1 lw 1
set style line 5 lt 5 lw 3
set style function lines
plot './scripts/result_cores_1.csv' using 1:3 with lines linestyle 1 title "sequential", \
'./scripts/result_cores_1.csv' using 1:7 with lines linestyle 2 title "openmp", \
'./scripts/result_cores_1.csv' using 1:11 with lines linestyle 3 title "tmp+openmp", \
'./scripts/result_cores_1.csv' using 1:15 with lines linestyle 4 title "tmp+thread"
quit

25
scripts/result_cores_2.plot Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/gnuplot
set encoding iso_8859_1
set terminal postscript eps enhanced
set notitle
set xlabel "Number of Cores"
set ylabel "Execution Time"
set output "./scripts/result_cores_2.eps"
set key top left
set style line 1 lt 1 lw 3
set style line 2 lt 7 lw 3
set style line 3 lt 2 lw 3
set style line 4 lt 1 lw 1
set style line 5 lt 5 lw 3
set style function lines
plot './scripts/result_cores_2.csv' using 1:3 with lines linestyle 1 title "sequential", \
'./scripts/result_cores_2.csv' using 1:7 with lines linestyle 2 title "openmp", \
'./scripts/result_cores_2.csv' using 1:11 with lines linestyle 3 title "tmp+openmp", \
'./scripts/result_cores_2.csv' using 1:15 with lines linestyle 4 title "tmp+thread"
quit

25
scripts/result_seq.plot Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/gnuplot
set encoding iso_8859_1
set terminal postscript eps enhanced
set notitle
set xlabel "Array Size (log_{10})"
set ylabel "Execution Time (log_{10})"
set output "./scripts/result_seq.eps"
set key top left
set style line 1 lt 1 lw 3
set style line 2 lt 7 lw 3
set style line 3 lt 2 lw 3
set style line 4 lt 1 lw 1
set style line 5 lt 5 lw 3
set style function lines
set logscale xy 10
plot './scripts/result_seq.csv' using 1:3 with lines linestyle 1 title "sequential", \
'./scripts/result_seq.csv' using 1:5 with lines linestyle 3 title "tmp+openmp", \
'./scripts/result_seq.csv' using 1:7 with lines linestyle 4 title "tmp+thread"
quit

26
scripts/result_sizes_1.plot Executable file
View File

@ -0,0 +1,26 @@
#!/usr/bin/gnuplot
set encoding iso_8859_1
set terminal postscript eps enhanced
set notitle
set xlabel "Array Size (log_{10})"
set ylabel "Execution Time (log_{10})"
set output "./scripts/result_sizes_1.eps"
set key top left
set style line 1 lt 1 lw 3
set style line 2 lt 7 lw 3
set style line 3 lt 2 lw 3
set style line 4 lt 1 lw 1
set style line 5 lt 5 lw 3
set style function lines
set logscale xy 10
plot './scripts/result_sizes_1.csv' using 1:3 with lines linestyle 1 title "sequential", \
'./scripts/result_sizes_1.csv' using 1:7 with lines linestyle 2 title "openmp", \
'./scripts/result_sizes_1.csv' using 1:11 with lines linestyle 3 title "tmp+openmp", \
'./scripts/result_sizes_1.csv' using 1:15 with lines linestyle 4 title "tmp+thread"
quit

27
scripts/result_sizes_2.plot Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/gnuplot
set encoding iso_8859_1
set terminal postscript eps enhanced
set notitle
set xlabel "Array Size (log_{10})"
set ylabel "Execution Time (log_{10})"
set output "./scripts/result_sizes_2.eps"
set key top left
set style line 1 lt 1 lw 3
set style line 2 lt 7 lw 3
set style line 3 lt 2 lw 3
set style line 4 lt 1 lw 1
set style line 5 lt 5 lw 3
set style function lines
set logscale xy 10
plot './scripts/result_sizes_2.csv' using 1:3 with lines linestyle 1 title "sequential", \
'./scripts/result_sizes_2.csv' using 1:7 with lines linestyle 2 title "openmp", \
'./scripts/result_sizes_2.csv' using 1:11 with lines linestyle 3 title "tmp+openmp", \
'./scripts/result_sizes_2.csv' using 1:15 with lines linestyle 4 title "tmp+thread"
quit

59
src/pfor/algorithm.h Normal file
View File

@ -0,0 +1,59 @@
#ifndef PFOR_PFOR_ALGORITHM_H
#define PFOR_PFOR_ALGORITHM_H
#include "index/properties.h"
#include "expression/expression.h"
namespace pfor {
/**
*/
template<typename I, index::Value a, index::Value b, typename=void>
struct SubstituteVariableInLinIndexSlopeImpl {
using type = I;
};
template<typename I, index::Value a, index::Value b>
struct SubstituteVariableInLinIndexSlopeImpl<I, a, b, std::enable_if_t<index::isLinear<I>>> {
using type = index::LinearIndex<a * index::linearSlope<I>, index::linearSlope<I>*b + index::linearOffset<I>>;
};
template<typename I, index::Value a, index::Value b>
using SubstituteVariableInLinIndexSlope = typename SubstituteVariableInLinIndexSlopeImpl<I, a, b>::type;
/**
*/
template<typename, index::Value, index::Value> struct SubstituteVariableInExpressionImpl;
template<typename Op, typename... Args, index::Value a, index::Value b>
struct SubstituteVariableInExpressionImpl<expr::Expression<Op, Args...>, a, b> {
using type = expr::Expression<Op, typename SubstituteVariableInExpressionImpl<Args, a, b>::type...>;
};
template<typename T, typename Id, typename Index, index::Value a, index::Value b>
struct SubstituteVariableInExpressionImpl<expr::Expression<T*, Id, Index>, a, b> {
using type = expr::Expression<T*, Id, SubstituteVariableInLinIndexSlope<Index, a, b>>;
};
template<typename T, std::size_t n, typename Id, typename Index, index::Value a, index::Value b>
struct SubstituteVariableInExpressionImpl<expr::Expression<std::array<T, n>, Id, Index>, a, b> {
using type = expr::Expression<std::array<T, n>, Id, SubstituteVariableInLinIndexSlope<Index, a, b>>;
};
template<typename T, index::Value a, index::Value b>
struct SubstituteVariableInExpressionImpl<expr::Constant<T>, a, b> {
using type = expr::Constant<T>;
};
template<typename E, index::Value a, index::Value b>
using SubstituteVariableInExpression = typename SubstituteVariableInExpressionImpl<E, a, b>::type;
template<index::Value a, index::Value b>
struct GenSubstituteVariableInExpression {
template<typename E>
using type = SubstituteVariableInExpression<E, a, b>;
};
}
#endif

143
src/pfor/clusters.h Normal file
View File

@ -0,0 +1,143 @@
#ifndef PFOR_PFOR_CLUSTERS_H
#define PFOR_PFOR_CLUSTERS_H
#include "comparators.h"
#include "conditions.h"
#include "expression/algorithm.h"
#include "expression/tuple.h"
#include "expression/info.h"
#include "expression/subexpression.h"
#include "mp/pack.h"
#include "mp/tuple.h"
#include "parallelizable.h"
namespace pfor {
/**
*/
template<typename> struct ClusterExpressionIdsImpl;
template<typename I, typename W, typename R, typename... Ts>
struct ClusterExpressionIdsImpl<Pack<Pack<I, W, R>, Ts...>> {
using type = PackPrepend<typename ClusterExpressionIdsImpl<Pack<Ts...>>::type, I>;
};
template<>
struct ClusterExpressionIdsImpl<Pack<>> {
using type = Pack<>;
};
template<typename Cluster>
using ClusterExpressionIds = typename ClusterExpressionIdsImpl<Cluster>::type;
/**
*/
template<typename> struct ClustersExpressionIdsImpl;
template<typename Cluster, typename... Clusters>
struct ClustersExpressionIdsImpl<Pack<Cluster, Clusters...>> {
using type = PackPrepend<typename ClustersExpressionIdsImpl<Pack<Clusters...>>::type, ClusterExpressionIds<Cluster>>;
};
template<>
struct ClustersExpressionIdsImpl<Pack<>> {
using type = Pack<>;
};
template<typename Clusters>
using ClustersExpressionIds = typename ClustersExpressionIdsImpl<Clusters>::type;
/**
*/
template<typename Clusters, typename E, typename = Clusters, typename = Pack<E>> struct ClustersInsertImpl;
template<typename Cluster, typename... Clusters, typename E, typename IndependantClusters, typename CurrentCluster>
struct ClustersInsertImpl<Pack<Cluster, Clusters...>, E, IndependantClusters, CurrentCluster> {
static constexpr bool depends = clusterDepends<Cluster, E>;
using next_clusters = Pack<Clusters...>;
using tmp_independant_clusters = PackRemove<IndependantClusters, Cluster>;
using new_independant_clusters = If<depends, tmp_independant_clusters, IndependantClusters>;
using tmp_current_cluster = PackSort<ComparatorExpressionInfo, PackMerge<CurrentCluster, Cluster>>;
using new_current_cluster = If<depends, tmp_current_cluster, CurrentCluster>;
using type = typename ClustersInsertImpl<next_clusters, E, new_independant_clusters, new_current_cluster>::type;
};
template<typename E, typename IndependantClusters, typename CurrentCluster>
struct ClustersInsertImpl<Pack<>, E, IndependantClusters, CurrentCluster> {
using type = PackAppend<IndependantClusters, CurrentCluster>;
};
template<typename Clusters, typename E>
using ClustersInsert = typename ClustersInsertImpl<Clusters, E>::type;
/**
*/
namespace impl {
template<typename, typename> struct ClustersGenImpl;
template<typename Clusters, typename H, typename... Ts>
struct ClustersGenImpl<Clusters, Pack<H, Ts...>> {
using tmp_out = ClustersInsert<Clusters, H>;
using type = typename ClustersGenImpl<tmp_out, Pack<Ts...>>::type;
};
template<typename Clusters>
struct ClustersGenImpl<Clusters, Pack<>> {
using type = Clusters;
};
template<typename ExprInfo>
using ClustersGen = typename ClustersGenImpl<Pack<>, ExprInfo>::type;
}
template<typename E>
struct ClustersGen {
using comma_splitted_expr = expr::SplitComma<E>;
using expr_info = expr::ExpressionInfo<comma_splitted_expr>;
using clusters = impl::ClustersGen<expr_info>;
using clusters_ids = ClustersExpressionIds<clusters>;
using type = PackSort<ComparatorUIntPack, clusters_ids>;
};
/**
*/
template<bool, typename, typename> struct FilterClustersImpl;
template<bool par, typename E, typename Cluster, typename... Clusters>
struct FilterClustersImpl<par, E, Pack<Cluster, Clusters...>> {
using expr_type = expr::ExpressionsTuple<E>;
using tuple_type = SubTuple<expr_type, Cluster>;
using subexpr_type = expr::SubExpression<tuple_type>;
using merge_cluster = If<true ^ par ^ parallelizable<subexpr_type>, Cluster, Pack<>>;
using next = typename FilterClustersImpl<par, E, Pack<Clusters...>>::type;
using type = PackMerge<next, merge_cluster>;
};
template<bool par, typename E>
struct FilterClustersImpl<par, E, Pack<>> {
using type = Pack<>;
};
template<bool par, typename E, typename Clusters>
using FilterClusters = typename FilterClustersImpl<par, E, Clusters>::type;
/**
*/
template<typename E, typename Clusters>
using SequentialCluster = typename FilterClustersImpl<false, E, Clusters>::type;
/**
*/
template<typename E, typename Clusters>
using ParallelCluster = typename FilterClustersImpl<true, E, Clusters>::type;
/**
*/
template<typename, typename> struct ExpressionFromClusters;
}
#endif

98
src/pfor/comparators.h Normal file
View File

@ -0,0 +1,98 @@
#ifndef PFOR_PFOR_COMPARATORS_H
#define PFOR_PFOR_COMPARATORS_H
#include "mp/meta.h"
#include "mp/pack.h"
namespace pfor {
/**
* @brief compares two unsigned integers boxed in a type
*
* @param Lhs a boxed unsigned integer
* @param Rhs a boxed unsigned integer
*
* @return Lhs < Rhs
*/
template<typename, typename> struct ComparatorUIntToType;
template<std::size_t lhs, std::size_t rhs>
struct ComparatorUIntToType<UIntToType<lhs>, UIntToType<rhs>> {
static constexpr bool value = lhs < rhs;
};
template<typename Lhs, typename Rhs>
constexpr bool comparatorUIntToType = ComparatorUIntToType<Lhs, Rhs>::value;
/**
* @brief compares two packs of boxed unsigned integers
*
* @param Lhs a pack of boxed unsigned integer
* @param Rhs a pack of boxed unsigned integer
*
* @return Lhs < Rhs
*/
template<typename, typename> struct ComparatorUIntPack;
template<std::size_t a, typename... As, std::size_t b, typename... Bs>
struct ComparatorUIntPack<Pack<UIntToType<a>, As...>, Pack<UIntToType<b>, Bs...>> {
static constexpr bool value = a == b? ComparatorUIntPack<Pack<As...>, Pack<Bs...>>::value:(a < b);
};
template<std::size_t... bs>
struct ComparatorUIntPack<Pack<>, Pack<UIntToType<bs>...>> {
static constexpr bool value = true;
};
template<std::size_t... as>
struct ComparatorUIntPack<Pack<UIntToType<as>...>, Pack<>> {
static constexpr bool value = false;
};
template<>
struct ComparatorUIntPack<Pack<>, Pack<>> {
static constexpr bool value = false;
};
template<typename Lhs, typename Rhs>
constexpr bool comparatorUIntPack = ComparatorUIntPack<Lhs, Rhs>::value;
/**
* @brief compares two expression's information (boxed integer, W, R)
*
* @param Lhs an expression's information
* @param Rhs an expression's information
*
* @return Lhs < Rhs (using the boxed integer)
*/
template<typename, typename> struct ComparatorExpressionInfo;
template<std::size_t i1, typename W1, typename R1, std::size_t i2, typename W2, typename R2>
struct ComparatorExpressionInfo<Pack<UIntToType<i1>, W1, R1>, Pack<UIntToType<i2>, W2, R2>> {
static constexpr bool value = i1 < i2;
};
template<typename Lhs, typename Rhs>
constexpr bool comparatorExpressionInfo = ComparatorExpressionInfo<Lhs, Rhs>::value;
/**
* @brief compares two written variables sets
*
* @param Lhs an expression's information
* @param Rhs an expression's information
*
* @return Lhs < Rhs (using the W pack)
*/
template<typename, typename> struct ComparatorWritePack;
template<typename I1, typename WT1, typename RT1, typename I2, typename WT2, typename RT2>
struct ComparatorWritePack<Pack<I1, WT1, RT1>, Pack<I2, WT2, RT2>> {
static constexpr bool value = comparatorUIntPack<WT1, WT2>;
};
template<typename Lhs, typename Rhs>
constexpr bool comparatorWritePack = ComparatorWritePack<Lhs, Rhs>::value;
}
#endif

56
src/pfor/conditions.h Normal file
View File

@ -0,0 +1,56 @@
#ifndef PFOR_PFOR_CONDITIONS_H
#define PFOR_PFOR_CONDITIONS_H
#include "mp/pack.h"
namespace pfor {
/**
* @brief testing Bernstein's conditions on two expressions
*
* @param E0 an expression's information (I, W, R) where W and R are sets of written/read variables
* @param E1 an expression's information
*
* @return true if the expressions depend on each other
*
* Bernstein's conditions for independance are :
* - no intersection between modified variables (xW, yW)
* - no intersection between read/modified variables (xR, yW) and (yR, xW)
*/
template<typename, typename> struct ExpressionDepends;
template<typename CI, typename CW, typename CR, typename TI, typename TW, typename TR>
struct ExpressionDepends<Pack<CI, CW, CR>, Pack<TI, TW, TR>> {
static constexpr bool value = PackIntersects<CW, TW>::value || PackIntersects<CR, TW>::value || PackIntersects<CW, TR>::value;
};
template<typename E0, typename E1>
constexpr bool expressionDepends = ExpressionDepends<E0, E1>::value;
/**
* @brief testing Bernstein's conditions between each expression of a pack with one expression
*
* @param C a cluster of expressions' information
* @param T an expression's information
*
* @return true if any of the expressions from the cluster depends on the expression T
*/
template<typename, typename> struct ClusterDepends;
template<typename C, typename... Cs, typename T>
struct ClusterDepends<Pack<C, Cs...>, T> {
using next = ClusterDepends<Pack<Cs...>, T>;
static constexpr bool value = ExpressionDepends<C, T>::value || next::value;
};
template<typename T>
struct ClusterDepends<Pack<>, T> {
static constexpr bool value = false;
};
template<typename C, typename T>
constexpr bool clusterDepends = ClusterDepends<C, T>::value;
}
#endif

View File

@ -0,0 +1,15 @@
#ifndef PFOR_PFOR_EXPRESSION_ACCESS_H
#define PFOR_PFOR_EXPRESSION_ACCESS_H
namespace pfor {
namespace expr {
/**
* Access type
*/
enum class Access { write, read };
}
}
#endif

View File

@ -0,0 +1,163 @@
#ifndef PFOR_PFOR_EXPRESSION_ALGORITHM_H
#define PFOR_PFOR_EXPRESSION_ALGORITHM_H
#include "access.h"
#include "expression.h"
#include "operandtag.h"
#include "../mp/pack.h"
#include "../mp/meta.h"
namespace pfor {
namespace expr {
/**
* @brief returns a pack of sub expressions
*/
template<typename> struct SplitCommaImpl;
template<typename... Ts>
struct SplitCommaImpl<Expression<op::Comma, Ts...>> {
using type = Pack<Ts...>;
};
template<typename Op, typename... Ts>
struct SplitCommaImpl<Expression<Op, Ts...>> {
using type = Pack<Expression<Op, Ts...>>;
};
template<typename E>
using SplitComma = typename SplitCommaImpl<E>::type;
/**
* @brief returns a comma separated expression from pack
*/
template<typename> struct MergeCommaImpl;
template<typename... Ts>
struct MergeCommaImpl<Pack<Ts...>> {
using type = Expression<op::Comma, Ts...>;
};
template<typename T>
struct MergeCommaImpl<Pack<T>> {
using type = T;
};
template<typename P>
using MergeComma = typename MergeCommaImpl<P>::type;
/**
* @brief returns the worst access (write being worse than read)
*/
template<Access...> struct WorstAccess;
template<Access access, Access... accesses>
struct WorstAccess<access, accesses...> {
static constexpr Access value = (access == Access::write? Access::write:WorstAccess<accesses...>::value);
};
template<Access access>
struct WorstAccess<access> {
static constexpr Access value = access;
};
/**
*/
template<typename, typename> struct IncludeTagsImpl;
template<typename IncludeId, typename Id, Access access, typename Index, typename... Ts>
struct IncludeTagsImpl<IncludeId, Pack<OperandTag<Id, access, Index>, Ts...>> {
using trail = typename IncludeTagsImpl<IncludeId, Pack<Ts...>>::type;
using trailit = typename IncludeTagsImpl<IncludeId, Pack<Ts...>>::indices;
using type = pfor::If<std::is_same<IncludeId, Id>{}, PackPrepend<trail, OperandTag<Id, access, Index>>, trail>;
using indices = pfor::If<std::is_same<IncludeId, Id>{}, PackPrepend<trailit, Index>, trailit>;
};
template<typename IncludeId>
struct IncludeTagsImpl<IncludeId, Pack<>> {
using type = Pack<>;
using indices = Pack<>;
};
template<typename IncludeId, typename Tags>
using IncludeTags = typename IncludeTagsImpl<IncludeId, Tags>::type;
/**
*/
template<typename, typename> struct ExcludeTagsImpl;
template<typename ExcludeId, typename Id, Access access, typename Index, typename... Ts>
struct ExcludeTagsImpl<ExcludeId, Pack<OperandTag<Id, access, Index>, Ts...>> {
using trail = typename ExcludeTagsImpl<ExcludeId, Pack<Ts...>>::type;
using type = pfor::If<not std::is_same<ExcludeId, Id>{}, PackPrepend<trail, OperandTag<Id, access, Index>>, trail>;
};
template<typename ExcludeId>
struct ExcludeTagsImpl<ExcludeId, Pack<>> {
using type = Pack<>;
};
template<typename ExcludeId, typename Tags>
using ExcludeTags = typename ExcludeTagsImpl<ExcludeId, Tags>::type;
/**
*/
template<typename> struct CountWrite;
template<typename Id, Access access, typename Index, typename... Ts>
struct CountWrite<Pack<OperandTag<Id, access, Index>, Ts...>> {
static constexpr std::size_t value = (access == Access::write? 1:0) + CountWrite<Pack<Ts...>>::value;
};
template<>
struct CountWrite<Pack<>> {
static constexpr std::size_t value = 0;
};
template<typename P>
constexpr std::size_t countWrite = CountWrite<P>::value;
/**
*/
template<typename, Access> struct FilterOperandTagsImpl;
template<typename Id, Access access, typename Index, typename... Ts, Access accessReq>
struct FilterOperandTagsImpl<Pack<OperandTag<Id, access, Index>, Ts...>, accessReq> {
using trail = typename FilterOperandTagsImpl<Pack<Ts...>, accessReq>::type;
using type = pfor::If<access == accessReq, PackPrepend<trail, OperandTag<Id, access, Index>>, trail>;
};
template<Access access, typename Index, typename... Ts, Access accessReq>
struct FilterOperandTagsImpl<Pack<OperandTag<IgnoredId, access, Index>, Ts...>, accessReq> {
using type = typename FilterOperandTagsImpl<Pack<Ts...>, accessReq>::type;
};
template<Access access>
struct FilterOperandTagsImpl<Pack<>, access> {
using type = Pack<>;
};
template<typename E, Access access>
using FilterOperandTags = typename FilterOperandTagsImpl<E, access>::type;
/**
*/
template<typename> struct IndicesFromOperandTagsImpl;
template<typename Id, Access access, typename Index, typename... Ts>
struct IndicesFromOperandTagsImpl<Pack<OperandTag<Id, access, Index>, Ts...>> {
using type = PackPrepend<typename IndicesFromOperandTagsImpl<Pack<Ts...>>::type, Index>;
};
template<>
struct IndicesFromOperandTagsImpl<Pack<>> {
using type = Pack<>;
};
template<typename P>
using IndicesFromOperandTags = typename IndicesFromOperandTagsImpl<P>::type;
}
}
#endif

View File

@ -0,0 +1,36 @@
#ifndef PFOR_PFOR_EXPRESSION_ASEXPRESSION_H
#define PFOR_PFOR_EXPRESSION_ASEXPRESSION_H
#include "expression.h"
namespace pfor {
namespace expr {
/**
* @brief turn into Expression if not already one
*/
template<typename, typename=void> struct AsExpressionImpl;
template<typename T>
struct AsExpressionImpl<T, std::enable_if_t<isExpression<T>>> {
using type = T;
};
template<typename T>
struct AsExpressionImpl<T, std::enable_if_t<not isExpression<T>>> {
using type = Constant<T>;
};
template<typename T>
using AsExpression = typename AsExpressionImpl<T>::type;
}
template<typename T>
expr::AsExpression<std::decay_t<T>> xpr(T&& v) {
return {std::forward<T>(v)};
}
}
#endif

View File

@ -0,0 +1,241 @@
#ifndef PFOR_PFOR_EXPRESSION_EXPRESSION_H
#define PFOR_PFOR_EXPRESSION_EXPRESSION_H
#include <tuple>
#include "op.h"
#include "tag.h"
#include "../index/index.h"
#include "../index/traits.h"
#include "../tuple_view.h"
namespace pfor {
namespace expr {
struct IgnoredId;
template<typename...> struct Expression;
template<typename...> struct Constant;
template<typename T>
struct Constant<T> {
using IsExpression = tag::Expression;
using DataType = T;
using Id = IgnoredId;
using ThisType = Constant<DataType, Id>;
DataType data;
Constant() = delete;
Constant(DataType const& data): data{data} {}
Constant(ThisType const& e): data{e.data} {}
inline DataType const& eval() { return data; }
inline DataType const& operator[](index::Value) const { return data; }
template<typename Index, std::enable_if_t<index::isIndex<Index>>* = nullptr>
inline ThisType& operator[](Index const&) { return *this; }
};
template<typename T>
struct Constant<T const*> {
using IsExpression = tag::Expression;
using DataType = T const*;
using Id = IgnoredId;
using ThisType = Constant<DataType, Id>;
DataType data;
Constant() = delete;
Constant(DataType const& data): data{data} {}
Constant(ThisType const& e): data{e.data} {}
inline T const& operator[](index::Value i) const { return data[i]; }
template<typename Index, std::enable_if_t<index::isIndex<Index>>* = nullptr>
inline ThisType& operator[](Index const&) { return *this; }
};
template<typename Expr, typename Prop>
struct Constant<index::IndexImpl<Expr, Prop>> {
using IsExpression = tag::Expression;
using DataType = index::Value;
using Id = IgnoredId;
using ThisType = Constant<DataType, Id>;
using Index = index::IndexImpl<Expr, Prop>;
Constant() = delete;
Constant(Index) {}
Constant(ThisType const&) {}
inline DataType operator[](index::Value i) const { return Index::eval(i); }
};
template<typename T, typename Id, typename Index_>
struct Expression<T*, Id, Index_> {
using IsExpression = tag::Expression;
using DataType = T*;
using Index = Index_;
using ThisType = Expression<DataType, Id, Index>;
DataType data;
Expression() = delete;
Expression(DataType data): data{data} {}
inline auto& operator[](index::Value i) { return data[Index::eval(i)]; }
template<typename NIndex, std::enable_if_t<index::isIndex<NIndex>>* = nullptr>
inline auto operator[](NIndex const&) { return Expression<DataType, Id, NIndex>{data}; }
inline auto begin() { return std::begin(data); }
inline auto end() { return std::end(data); }
// inline auto operator=(ThisType const& rhs) {
// return Expression<op::Assign, ThisType, ThisType>{{}, *this, rhs};
// }
template<typename Rhs, std::enable_if_t<isExpression<Rhs>>* = nullptr>
inline auto operator=(Rhs rhs) {
return Expression<op::Assign, ThisType, Rhs>{{}, *this, rhs};
}
template<typename Rhs, std::enable_if_t<not isExpression<Rhs>>* = nullptr>
inline auto operator=(Rhs rhs) {
return Expression<op::Assign, ThisType, Constant<Rhs>>{{}, *this, rhs};
}
inline auto operator++(int) { return Expression<op::PostIncr, ThisType>{{}, *this}; }
inline auto operator--(int) { return Expression<op::PostDecr, ThisType>{{}, *this}; }
inline auto operator++() { return Expression<op::PreIncr, ThisType>{{}, *this}; }
inline auto operator--() { return Expression<op::PreDecr, ThisType>{{}, *this}; }
};
template<typename T, std::size_t n, typename Id, typename Index_>
struct Expression<std::array<T, n>, Id, Index_> {
using IsExpression = tag::Expression;
using DataTypeRaw = std::array<T, n>;
using DataType = DataTypeRaw&;
using Index = Index_;
using ThisType = Expression<DataTypeRaw, Id, Index>;
DataType data;
Expression() = delete;
Expression(DataType data): data{data} {}
inline auto& operator[](index::Value i) { return data[Index::eval(i)]; }
template<typename NIndex, std::enable_if_t<index::isIndex<NIndex>>* = nullptr>
inline auto operator[](NIndex const&) { return Expression<DataTypeRaw, Id, NIndex>{data}; }
inline auto begin() { return std::begin(data); }
inline auto end() { return std::end(data); }
// inline auto operator=(ThisType const& rhs) {
// return Expression<op::Assign, ThisType, ThisType>{{}, *this, rhs};
// }
template<typename Rhs, std::enable_if_t<isExpression<Rhs>>* = nullptr>
inline auto operator=(Rhs rhs) {
return Expression<op::Assign, ThisType, Rhs>{{}, *this, rhs};
}
template<typename Rhs, std::enable_if_t<not isExpression<Rhs>>* = nullptr>
inline auto operator=(Rhs rhs) {
return Expression<op::Assign, ThisType, Constant<Rhs>>{{}, *this, rhs};
}
inline auto operator++(int) { return Expression<op::PostIncr, ThisType>{{}, *this}; }
inline auto operator--(int) { return Expression<op::PostDecr, ThisType>{{}, *this}; }
inline auto operator++() { return Expression<op::PreIncr, ThisType>{{}, *this}; }
inline auto operator--() { return Expression<op::PreDecr, ThisType>{{}, *this}; }
};
template<typename Op, typename... ETs>
struct Expression<Op, ETs...> {
using IsExpression = tag::Expression;
using ThisType = Expression<Op, ETs...>;
static constexpr std::size_t arity = sizeof...(ETs);
using AritySequence = decltype(std::make_index_sequence<arity>());
Op op;
std::tuple<ETs...> operands;
Expression() = delete;
Expression(Op const& op, ETs const&... e): op(op), operands{e...} {}
Expression(ThisType const& e): op(e.op), operands{e.operands} {}
Expression(ThisType&& e): op(std::move(e.op)), operands{std::move(e.operands)} {}
inline decltype(auto) eval() { return eval(AritySequence{}); }
inline decltype(auto) operator[](index::Value i) { return eval(i, AritySequence{}); }
// inline auto operator=(ThisType const& rhs) {
// return Expression<op::Assign, ThisType, ThisType>{{}, *this, rhs};
// }
template<typename Rhs, std::enable_if_t<isExpression<Rhs>>* = nullptr>
inline auto operator=(Rhs rhs) {
return Expression<op::Assign, ThisType, Rhs>{{}, *this, rhs};
}
template<typename Rhs, std::enable_if_t<not isExpression<Rhs>>* = nullptr>
inline auto operator=(Rhs rhs) {
return Expression<op::Assign, ThisType, Constant<Rhs>>{{}, *this, rhs};
}
template<std::size_t... indices>
inline decltype(auto) eval(std::index_sequence<indices...>) {
return op.eval(std::get<indices>(operands)...);
}
template<std::size_t... indices>
inline decltype(auto) eval(index::Value i, std::index_sequence<indices...>) {
return op.eval(i, std::get<indices>(operands)...);
}
inline auto operator++(int) { return Expression<op::PostIncr, ThisType>{{}, *this}; }
inline auto operator--(int) { return Expression<op::PostDecr, ThisType>{{}, *this}; }
inline auto operator++() { return Expression<op::PreIncr, ThisType>{{}, *this}; }
inline auto operator--() { return Expression<op::PreDecr, ThisType>{{}, *this}; }
};
template<typename Op, typename View, typename... ETs>
struct Expression<op::View<Op>, View, ETs...> {
using IsExpression = tag::Expression;
using ThisType = Expression<Op, View, ETs...>;
using Tuple = std::tuple<ETs...>;
using RefExpression = Expression<Op, ETs...>;
static constexpr std::size_t arity = packSize<View>;
using AritySequence = decltype(std::make_index_sequence<arity>());
Op op;
TupleView<Tuple, View> operands;
Expression() = delete;
Expression(RefExpression& e): op(e.op), operands{e.operands} {}
Expression(ThisType const& e): op(e.op), operands{e.operands} {}
Expression(ThisType&& e): op(std::move(e.op)), operands{std::move(e.operands)} {}
inline decltype(auto) eval() { return eval(AritySequence{}); }
inline decltype(auto) operator[](index::Value i) { return eval(i, AritySequence{}); }
template<std::size_t... indices>
inline decltype(auto) eval(std::index_sequence<indices...>) {
return op.eval(std::get<indices>(operands)...);
}
template<std::size_t... indices>
inline decltype(auto) eval(index::Value i, std::index_sequence<indices...>) {
return op.eval(i, std::get<indices>(operands)...);
}
};
}
}
#endif

Some files were not shown because too many files have changed in this diff Show More