cmu-phil / tetrad

Repository for the Tetrad Project, www.phil.cmu.edu/tetrad.
GNU General Public License v2.0
404 stars 111 forks source link

Tetrad will grab the control of keyboard and mouse automatically on Windows 10 #1389

Closed williamty closed 2 years ago

williamty commented 2 years ago

After running the Tetrad 6.9.0 or 7.1.0 jar file on Windows 10, I minimized its window. But the minimized Tetrad program would continue trying to set itself to be the first running process since then, and attempting to pop up, and I can do nothing because of losing control my keyboard and mouse, which was occupied by Tetrad. Then I set the priority of java to low in Windows task-manager, but it doesn't work. How to deal with that?

jdramsey commented 2 years ago

Well I can see why 6.9.0 would behave this way but not 7.1.0; there must be something I don't understand, since the cause of that behavior had been removed from the code. It doesn't behave that way on my mac (I just checked). But I have a Windows 10 machine right now that I had borrowed from the IT department. I'm returning it tomorrow, but maybe before I do I can check this behavior on it, see if I can reproduce this problem.

williamty commented 2 years ago

I used RFCI algorithm and mixed data as you know. I will download 7.1.0 again and try.

williamty commented 2 years ago

It happens again after running the Jar file(tetrad-gui-7.1.0-launch.jar) about 2-3 minutes. :-(

williamty commented 2 years ago

Can I run Tetrad jar file through command line? I'm not familiar with java.

jdramsey commented 2 years ago

Wait, are you running out of memory? That could slow it down and cause it to hang. Try this at the command line:

java -Xmx[#]g -jar [name of jar].jar

where # is the number of gigabytes of RAM you're willing to allow Java to use to allocate objects.

williamty commented 2 years ago

I don't think so. The RAM of my laptop is 24GB, and I never see it's used to more than 20GB.

williamty commented 2 years ago

It still happens after setting the RAM to 12GB.

D:\program>java -Xmx12g -jar tetrad-gui-7.1.0-launch.jar
config file: /config/prodConfig.xml
Infer demiliter for file: w.csv
File index = 0 has been loaded successfully
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Searching at depth 0.
jdramsey commented 2 years ago

You are using conditional Gaussian? Could you use degenerate Gaussian instead? I am worried about your discrete variable with 31 categories; for CG that can imply sizable data structures for storing the information; DG separates out the discrete categories into separate continuous-valued variables and so can in principle avoid this problem.

williamty commented 2 years ago

I used DG instead of CG. cause I've read the papers, and I think maybe DG is better. image

jdramsey commented 2 years ago

Oh it's using testwise deletion because of the missing values. How many missing values are there?

jdramsey commented 2 years ago

Also, can you impute the missing values?

williamty commented 2 years ago

yes, I have a dataset with imputation data. I forgot the number... maybe there are about 3000 to 5000 missing data.

williamty commented 2 years ago

The same. It's no use to change to imputated data. I found Tetrad always called system interrupt and I don't know why.

jdramsey commented 2 years ago

Wait your imputed data has not missing data?

jdramsey commented 2 years ago

And it still objects?

jdramsey commented 2 years ago

It's very difficult to debug this without seeing the data. I often have this problem though.

jdramsey commented 2 years ago

How about I give you a mixed dataset that I know loads in Tetrad?

williamty commented 2 years ago

OK, no problem. But I think the problem is not caused by data. I can use the mixed dataset loaded in Tetrad. I think maybe something is wrong between the system and java.

williamty commented 2 years ago

Just windows 10 family. not occur in windows 10 enterprise.