View Full Version : CLS-PrecompMT (Multi tasking)
Razor12911
10-06-2016, 06:03
Hello guys, again.
Made another CLS based on the one I did about a week ago.
Which you can find here:
http://fileforums.com/showthread.php?t=97938
What I did this time is made the cls launches parallel instances of precomp.exe to speed up the entire process.
Notes:
During compression, it launches the same number of instances as the number of threads your processor has and during decompression, it launches half that number.
cls name being cls-precompmt.dll, does not mean the executables must also be precompmt.exe and so on, I just renamed the cls but maintained its usage to precomp with the filenames precomp.exe and precomp64.exe for 64-bit.
precomp versions supported:
0.38-0.46
Enjoy
ChronoCross
10-06-2016, 06:38
Nice razor. Very clever.
Andrey167
10-06-2016, 06:56
work on 2 cores,and dont work in 4 threads(Hyper Threading)
Razor12911
10-06-2016, 07:04
Hmm weird, did you read the part that says during decompression, it uses half of what you have, unless you're saying with reference to compression step
thx! why it is impossible to choose how many streams to use? it would be convenient
Very good, Thanks Razor12911
http://i.imgsafe.org/ad758a1f7c.png
felice2011
10-06-2016, 08:58
Great Speed ... Bro !!!
http://i20.photobucket.com/albums/b249/ElNinoSouthPole/BabeGifs/Selena%20Gomez/Thumbs-Up.gif
nice work razor really awesome stuff. i think if guys have issues or problems dont say its not working.State your processor in detailed spec makes life easier for Razor to fix.
ok 8 threads working like a boss.Even with Reflate running :D
8 Temp folders created.
I7 4700MQ CPU Haswell
2.4GHZ turbo Boost to 3.2GHZ
felice2011
10-06-2016, 13:03
@mikey26 It works in parallel, it is as if at each thread would create a precomp execution, the overall size of the folders in mt is equal to the single temporary folder you created for the normal execution precomp.:)
Pretty something that every one needed, Bravo Brother Razor
So now we can get MT Compressing so then can we also get MT Decompression? If possible then How?:)
@felice2011 : i know that bro kinda hard not to miss or see that :P
@Prince4 : check wat razor mentioned in the start of the thread :
Notes:
During compression, it launches the same number of instances as the number of threads your processor has and during decompression, it launches half that number.
Razor12911, at a decompression it was possible to make so that 3\4 and 7\8 kernels were used, but not a half, what does you think? lay out please such version :)
Razor12911
01-11-2016, 08:35
Update uploaded
Added options for thread count and brute. (Not tested) I simply have no time, plus I'm not really sure why I'm doing this.
wow, big thanks Razor12911!!!
(Not tested)
everything well works
Before Update :
everything is ok
After the update with brute 0 & threads works fine :
everything is ok
Sorry I forgot to put brute to zero :D now everything works fine thnx bro Razor & don't care about anyone who get your work & edit on it or use it without ur permission :) Just do it & make sure nothing you do will waste
aswadd
because it changes from 1 to 0.
cls-precompmt.ini
[CLS]
Threads = 1
Brute = 1
if its value is 1 prederterminado
aswadd
because it changes from 1 to 0.
cls-precompmt.ini
[CLS]
Threads = 1
Brute = 1
if its value is 1 prederterminado
who wants to use brute ?? it will talk all your live to complete .. I just Forgot to put it to Zero :D so it seemed to me like stuck
tanerjames
05-11-2016, 15:34
Hi,
Error with Unarc.dll:
Unarc.dll returned an error code: -1
ERROR: archive data corrupted (decomporession fails)
How to use inno setup and unarc.dll?
Thanks.
When you say it support Precomp from 0.38 to 0.46 do you mean for compressing and decompression? I tried using 0.38 and 0.42 but none of them worked for compressing, only default 0.45 works.
Tested in max payne 3 complete edition
precompmt+srep+lzma2
Game size = 32 GB
Size of Repack = 18.3 GB
Installation time 50 min
divided in 2 Setup.bin
*
Setup1.bin
The rest of the game folders
Setup2.bin
The movies folder is not compressed
For me the best option, since precomp 0.42 takes to install the game in 2 hours and compresses it up to 16 GB
Tested in max payne 3 complete edition
precompmt+srep+lzma2
Game size = 32 GB
Size of Repack = 18.3 GB
Installation time 50 min
divided in 2 Setup.bin
*
Setup1.bin
The rest of the game folders
Setup2.bin
The movies folder is not compressed
For me the best option, since precomp 0.42 takes to install the game in 2 hours and compresses it up to 16 GB
i done from Max Payne 3 Complete Edition last ver 1.0.0.196
pzlib+srep+lzma
Game size = 32.5 GB
Size of Repack = 16.6 GB
Installation time 55 min on my cpu 8 Core amd
do this if you are interested in reducing Size
I only have 4 threads, so for me it is double the installation with pzlib
CAT8K
Maybe if you use precompmt the installation for you will be 25 min thanks to its 8 threads
Batman Arkham Knight 52.0 GB TO 31.0 GB precompmt+Srep+Lzma2:D
http://uupload.ir/files/w3gv_cp.png
http://uupload.ir/files/qxmn_dp.png
Hi Razor12911
cls-precompmt_update! Automatic threads your processor has and during decompression, it launches half that number?
Razor12911
16-12-2016, 06:18
Update2 uploaded
Changes
Automatic threads is half during compression and decompression
Added thread percentage option
Added optional work directory
Added optional work directory
{app} or how?
Razor12911
16-12-2016, 11:28
{app} is an inno constant, cls doesn't know what it is, so you have to use setinistring in a script to pass info to cls configuration just before you start unpacking archives.
Now, that's the talk :D thnx Razor For the Update
Razor12911 I am sorry for my bad english
Installer crash when using CLS-PrecompMT when Cancel installation
I did so added to isdone 6 Finale
#define Precompmt
[Setup]
[Files]
#ifdef Precompmt
Source: Include\PrecompMt\cls-precompmt.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\PrecompMt\precomp.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\PrecompMt\precomp64.exe; DestDir: {tmp}; Flags: dontcopy
#endif
procedure CurStepChanged(CurStep: TSetupStep);
#ifdef Precompmt
SaveStringToFile(ExpandConstant('{tmp}\cls-precompmt.ini'), '[CLS]'+#13#10+'Threads=75%'+#13#10+'Brute=0'+#13#10+'Te mp='+ExpandConstant('{app}'), True);
ExtractTemporaryFile('cls-precompmt.dll');
ExtractTemporaryFile('precomp.exe');
ExtractTemporaryFile('precomp64.exe');
#endif
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data-1.bin'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\cls-precompmt.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break;
http://s016.radikal.ru/i334/1612/ba/97f82ac9b10e.jpg (http://radikal.ru)
and if you do so then there is no error
if not ISExec( 0, 0, 0, ExpandConstant('{tmp}\unarc.exe'), ExpandConstant('x -o+ -cfg"{tmp}\cls-precompmt.ini" -w"{app}" -pPassword -dp"{app}" "{src}\data-1.bin"'), ExpandConstant('{tmp}'), '...',false) then break;
ZakirAhmad
26-02-2017, 09:16
please help me...
while unpacking i am getting unarc.dll has returned with error code 1.. arc data corrupted... I included precomp.exe, cls-precompmt.dll and cls-precompmt.ini in wpi script...
ZakirAhmad
27-02-2017, 02:15
The problem is only with scripts... cmd extractor works good...
example on ISDone0.6final
#define Precompmt
[Setup]
[Files]
#ifdef Precompmt
Source: Include\PrecompMt\cls-precompmt.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\PrecompMt\precomp.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\PrecompMt\precomp64.exe; DestDir: {tmp}; Flags: dontcopy
#endif
[Code]
var
i:integer;
procedure CancelButtonOnClick(Sender: TObject);
begin
SuspendProc;
if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then ISDoneCancel:=1;
#ifdef Precompmt
if not IsWin64 then begin
Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM Precomp.exe', '', SW_HIDE, ewWaitUntilTerminated, i);
end else begin
Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM Precomp64.exe', '', SW_HIDE, ewWaitUntilTerminated, i);
DelTree(ExpandConstant('{app}\'), True, True, True);
end;
#endif
ResumeProc;
end;
#ifdef Precompmt
SaveStringToFile(ExpandConstant('{tmp}\cls-precompmt.ini'), '[CLS]'+#13#10+'Threads=75%'+#13#10+'Brute=0'+#13#10+'Te mp='+ExpandConstant('{tmp}'), True);
ExtractTemporaryFile('cls-precompmt.dll');
ExtractTemporaryFile('precomp.exe');
ExtractTemporaryFile('precomp64.exe');
#endif
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data-1.arc'), ExpandConstant('{app}\'), '', false, 'pass', ExpandConstant('{tmp}\cls-precompmt.ini'), ExpandConstant('{app}'), notPCFonFLY{PCFonFLY}) then break;
Braw why am i still getting
Could not get the file size of null00
with whatever version of pecomp i use and also the CLS this isn't working too..
Plz a little help?
There are about 3 games that i need to put in to DVD5s that have a lot of ZLibs in them :)
ZakirAhmad
27-02-2017, 05:57
please bro i have no experience in programming... can u please give me modified version of wpi which supports precompmt...
example on isdone0.6final
#define precompmt
[setup]
[files]
#ifdef precompmt
source: Include\precompmt\cls-precompmt.dll; destdir: {tmp}; flags: Dontcopy
source: Include\precompmt\precomp.exe; destdir: {tmp}; flags: Dontcopy
source: Include\precompmt\precomp64.exe; destdir: {tmp}; flags: Dontcopy
#endif
[code]
var
il:integer;
procedure cancelbuttononclick(sender: Tobject);
begin
suspendproc;
if msgbox(setupmessage(msgexitsetupmessage), mbconfirmation, mb_yesno) = idyes then isdonecancel:=1;
#ifdef precompmt
if not iswin64 then begin
exec(expandconstant('{sys}\taskkill.exe'), ' /f /im precomp.exe', '', sw_hide, ewwaituntilterminated, i);
end else begin
exec(expandconstant('{sys}\taskkill.exe'), ' /f /im precomp64.exe', '', sw_hide, ewwaituntilterminated, i);
deltree(expandconstant('{app}\'), true, true, true);
end;
#endif
resumeproc;
end;
#ifdef precompmt
savestringtofile(expandconstant('{tmp}\cls-precompmt.ini'), '[cls]'+#13#10+'threads=75%'+#13#10+'brute=0'+#13#10+'te mp='+expandconstant('{app}'), true);
extracttemporaryfile('cls-precompmt.dll');
extracttemporaryfile('precomp.exe');
extracttemporaryfile('precomp64.exe');
#endif
if not isarcextract ( 0, 0, expandconstant('{src}\data-1.arc'), expandconstant('{app}\'), '', false, 'pass', expandconstant('{tmp}\arc.ini'), expandconstant('{app}'), notpcfonfly{pcfonfly}) then break;
ciu:(
ZakirAhmad
27-02-2017, 06:51
I said bro please provide wpi script which extracts precompmt. .. please please please...
ZakirAhmad
27-02-2017, 09:20
@vint56
thanks bro... is it working
ZakirAhmad
27-02-2017, 21:06
@vint56
This really helped but since i am using modified wpi script with archive.ini... i was not able to modify this using ur example script... please modify for me this script... thanks in advance...
ZakirAhmad
27-02-2017, 22:58
please any one reply...
ZakirAhmad
27-02-2017, 23:34
@vint56...
thanks bro,it worked... while compressing with precomp045 i am getting error arc.exe has stopped working on a 2gb file... while precomp044 works good... what am i doing wrong...
ZakirAhmad I do not know what kind of bug you but try to add it precomp -intense -cn -t-j
arc.ini
packcmd = precomp -intense -cn -t-j -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
ZakirAhmad
28-02-2017, 01:24
Thanks... the modified script u uploaded for me has uninstall problemm... please correct... thanks alot...
Thanks... the modified script u uploaded for me has uninstall problemm... please correct... thanks alot...
add these files to your script
Source: Resources\Dark.png; DestDir: {app}\Uninstall; Attribs: hidden system;
Source: Resources\Light.png; DestDir: {app}\Uninstall; Attribs: hidden system;
Source: Graphics\Images\Setup1.jpg; DestDir: {app}\Uninstall; Attribs: hidden system;
Source: Resources\botva2.dll; DestDir: {app}\Uninstall; Attribs: hidden system;
ZakirAhmad
28-02-2017, 02:45
@-XCX
Before adding support for cls-precompmt.dll, everything was working great...
Dude Give Me Your Script I will solve your problem
ZakirAhmad
28-02-2017, 03:55
here it is
http://fileforums.com/attachment.php?attachmentid=17450&d=1488265586
Just Remove This Line
SaveStringToFile(ExpandConstant('{tmp}\cls-precompmt.ini'), '[CLS]'+#13#10+'Threads=75%'+#13#10+'Brute=0'+#13#10+'Te mp='+ExpandConstant('{tmp}'), True);
And It Will Work
if you get uninstallation problem in your script then add this files
Source: Resources\Dark.png; DestDir: {app}; Attribs: hidden system;
Source: Resources\Light.png; DestDir: {app}; Attribs: hidden system;
Source: Graphics\Images\Setup1.jpg; DestDir: {app}; Attribs: hidden system;
Source: Resources\botva2.dll; DestDir: {app}; Attribs: hidden system;
ZakirAhmad
28-02-2017, 07:02
THANKS FOR HELP @EVERYONE
uninstall problem solved...
but i am not able to extract files compressed with precompmt+pzlib+srep+lzma...
did you this files to your script
ExtractTemporaryFile('Pzlib.exe');
ExtractTemporaryFile('arc.ini');
ExtractTemporaryFile('hif2raw_dll.dll');
ExtractTemporaryFile('raw2hif_dll.dll');
ZakirAhmad
28-02-2017, 07:20
with out precommt everything worked... above in a post of mine is a file.... please take a look on it... thanks alot...
ZakirAhmad
28-02-2017, 07:56
with out precommt everything worked... above in a post of mine is a file.... please take a look on it... thanks alot...
ZakirAhmad
01-03-2017, 02:38
Can please any body post a compressor with working precompmt support... I tried everything to get through the error but I am still getting error arc.exe has stopped working... I tried it on 5gb folder files.... at about 4.5% i am getting the error...
Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM pZLib.exe', '', SW_HIDE, ewNoWait, ISDoneCancel);
Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM Precomp.exe', '', SW_HIDE, ewWaitUntilTerminated, ISDoneCancel);
Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM Precomp64.exe', '', SW_HIDE, ewWaitUntilTerminated, ISDoneCancel);
DelTree(ExpandConstant('{app}\'), True, True, True);
:D
Chayan Manna
06-03-2017, 07:39
How can I get first release? I deleted it.
Chayan Manna
11-03-2017, 20:14
Please someone give me the first release. That's the full 7z file provided by razor12911.
Please someone give.......
L0v3craft
12-03-2017, 06:17
Hi guys, someone here can help me to get it working ?
I'm using:
- precomp/precomp64.exe (0.45 alpha version)
- cls-precompmt.dll + cls-precompmt.ini are in the same folder of precomp exe files
- the command that I'm trying is this(in my arc.ini file):
ultral24x4 = msc_frog+srep+delta+4x4:lzma:max/$void=srep+zstd/$deflate=precomp+srep+delta+4x4:lzma:max
[External compressor:precomp]
header = 0
packcmd = precomp64 -v -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = precomp64 -o$$arcdatafile$$.tmp -r $$arcpackedfile$$.tmp
And in the task manager i can see only one precomp64.exe
Why it is not working in mt for me ? :(
ZakirAhmad
12-03-2017, 08:01
@L0v3craft
precompmt doesnt required arc.ini
include in compressor precomp64.exe precomp.exe cls-precompmt.dll cls-precompmt.ini
in precompmt.ini edit Temp=./ and
writr command for compression as -mprecompmt+srep+lzma...
also if source file is below 64mb only 1 thread will be used. if above64mb 2 and so on...
L0v3craft
12-03-2017, 10:42
@L0v3craft
precompmt doesnt required arc.ini
include in compressor precomp64.exe precomp.exe cls-precompmt.dll cls-precompmt.ini
in precompmt.ini edit Temp=./ and
writr command for compression as -mprecompmt+srep+lzma...
also if source file is below 64mb only 1 thread will be used. if above64mb 2 and so on...
Thanks but doesn't work with the compressor that I'm using. Probably something is wrong in the arc.ini file.
pmt
Your compressor works but I want use my compressor.
I'm using this:
cut
can you make it working for me ? Thanks in advance.
the mask has nothing to do with precompmt, just not to go out of the question ;)
to use mask with pmt, you just have to adapt the files for compression
metodo1,2,3,4,5 etc., then you have to adapt to your anthem scrip is simple but takes time for tests
L0v3craft
12-03-2017, 13:17
the mask has nothing to do with precompmt, just not to go out of the question ;)
to use mask with pmt, you just have to adapt the files for compression
metodo1,2,3,4,5 etc., then you have to adapt to your anthem scrip is simple but takes time for tests
Thanks but I solved my problem in a simple way:
I edited my arc.ini:
- I removed this part of the code:
[External compressor:precomp]
header = 0
packcmd = precomp64 -intense -v -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = precomp64 -o$$arcdatafile$$.tmp -r $$arcpackedfile$$.tmp
- And changed this:
ultral24x4 = msc_frog+srep+delta+4x4:lzma:max/$void=srep+zstd/$deflate=precomp+srep+delta+4x4:lzma:max
with this
ultral24x4 = msc_frog+srep+delta+4x4:lzma:max/$void=srep+zstd/$deflate=precompmt+srep+delta+4x4:lzma:max
And all is working now :) But I don't understand the difference from "-mprecompmt" and "-precompmt". Is there some difference ?
o yes code error
[External compressor:precomp]
header = 0
packcmd = precomp64 -intense -v -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = precomp64 -o$$arcdatafile$$.tmp -r $$arcpackedfile$$.tmp
correct is
[External compressor:precomp64]
header = 0
packcmd = precomp64 -intense -v -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = precomp64 -o$$arcdatafile$$.tmp -r $$arcpackedfile$$.tmp
Does precompmt ignore commands add in arc.ini? Or it only missing the option to disable MP3?
Schnaader say -t-3 disable MP3 compression, when i use it in Precomp045 that works fine but in precompmt it just ignoring this command. I need to disable MP3 compression because it cause error to my files.
Is there some solution Razor?
Does precompmt ignore commands add in arc.ini? Or it only missing the option to disable MP3?
Schnaader say -t-3 disable MP3 compression, when i use it in Precomp045 that works fine but in precompmt it just ignoring this command. I need to disable MP3 compression because it cause error to my files.
Is there some solution Razor?
Unfortunately it doesn't take the -t-+ options
Unfortunately it doesn't take the -t-+ options
I guess BLACKFIRE69's cls-precomp.dll has this facility.
You can add your custom options into,
cls-precomp.ini >> [Precomp] >> Options= -cn -brute -t-+ ......
Thanks, that one's working however it will force creating all the output files to where the .dll or arc.exe is, including the compressed file, the temp file folders as well as the log file.
And it seems when several precomp running in parallel to split the task, it will expose a problem I found:
Some zip, 7z files , when only a few files going to be compressed, they will fail the decompress on CRC checks. When they are included in a larger set of files, they will pass the decompress.
And with a large set of files, precomp running in parallel , they will fail to decompress because of CRC errors. I guess the reason is, when those zip, 7z files mixed with large set of files, they work fine. When precomp running in parallel , the whole file set been splitted into multiple sections, and the section doesn't have enough files to save those kids.
The zip,7z files have problems are when you try to run this command
precomp.exe -cn -o1.pcf 121.zip
against them:
None of the given compression and memory levels could be used.
There will be no gain compressing the output file.
I'll try -cl or -cb with precomp's builtin compressing;;
Some zip, 7z files , when only a few files going to be compressed, they will fail the decompress on CRC checks.
I also have this experience on xtool with -t100p.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.