Updates and Results Talks and Posters Advice Ideas Important Figures Write-Ups Outreach How-To Funding Opportunities GENETIS
  GENETIS, Page 12 of 14  ELOG logo
  ID Datedown Author Subject
  Draft   Wed May 20 10:58:38 2020   

Today's Summer 2020 daily update:

As a note, today OSC was down so productivity was more limited

Name Update for Today Plans for Tomorrow
Alex M.

Mostly just wrote more on the paper in the Genetic Algorithm section. I added some citation that we used in ICRC but there are still more places that should have citations.

I might check tonight when OSC is back up to try to push in more updates to the loop because I wanna get Evelyn and Ryan started on running the loop. Putting in those fixes is a big priority because we want to be able to correct the potential issue with XF simulation folders being overwritten and thus uan data not corresponding to the write individuals. The two big things for me in the loop are getting the simulation data to save correctly (and also putting that in the database) and testing that we can replicate results using the specific seed. I'll probably only focus on loop stuff tomorrow.

 

Alex P. 

Got up before OSC was down to check progress of overnight run, it seems to have worked but I noticed a problem with the database that it wasn't writing to it probably due to a permissions issue but I would have to run another time to see. Shouldn't have affected data but just the use of the database. Run got up to 8 generations with non-zero fitness score which is positive and seems to have fixed the error we originally encountered. Talked to Eliot about pointers and possible errors but was unable to look at the specific error because it is on OSC.

Tomorrow plan is to continue to work on database functionality and continue run to get more generations, also want to add the ability to add more plots than just the fitness score to the dropbox automatically.  Plots: upload all plots (Fitness, LRT, vEff), remove legend, upload penalized red/green plot too, take off legend, add units to Fitness
Leo    
Eliot

Read about pointers and vectors in C++. Talked to Alex P a bit, and have some ideas of things to change to get the GA running. Began reading about antennas. Mostly a down day due to OSC being down.

Will implement changes to GA and continue familiarizing myself with how XF reads these values. 

Evelyn

 

 
Ryan  

 

  50   Tue May 19 12:20:40 2020 Alex PattonGENETIS Daily Updates

Today's Summer 2020 daily update:

As a note, today OSC was down so productivity was more limited

Name Update for Today Plans for Tomorrow
Alex M.

Mostly just wrote more on the paper in the Genetic Algorithm section. I added some citation that we used in ICRC but there are still more places that should have citations.

I might check tonight when OSC is back up to try to push in more updates to the loop because I wanna get Evelyn and Ryan started on running the loop. Putting in those fixes is a big priority because we want to be able to correct the potential issue with XF simulation folders being overwritten and thus uan data not corresponding to the write individuals. The two big things for me in the loop are getting the simulation data to save correctly (and also putting that in the database) and testing that we can replicate results using the specific seed. I'll probably only focus on loop stuff tomorrow.

 

Alex P. 

Got up before OSC was down to check progress of overnight run, it seems to have worked but I noticed a problem with the database that it wasn't writing to it probably due to a permissions issue but I would have to run another time to see. Shouldn't have affected data but just the use of the database. Run got up to 8 generations with non-zero fitness score which is positive and seems to have fixed the error we originally encountered. Talked to Eliot about pointers and possible errors but was unable to look at the specific error because it is on OSC.

Tomorrow plan is to continue to work on database functionality and continue run to get more generations, also want to add the ability to add more plots than just the fitness score to the dropbox automatically.  Plots: upload all plots (Fitness, LRT, vEff), remove legend, upload penalized red/green plot too, take off legend, add units to Fitness
Leo    
Eliot

Read about pointers and vectors in C++. Talked to Alex P a bit, and have some ideas of things to change to get the GA running. Began reading about antennas. Mostly a down day due to OSC being down.

Will implement changes to GA and continue familiarizing myself with how XF reads these values. 

Evelyn

 

 
Ryan    
  49   Mon May 18 15:13:13 2020 Julie RollaGENETIS Daily Update

Today's Summer 2020 daily update:

 

Name Update for Today Plans for Tomorrow
Alex M.

(See Alex P. for details on working on fixing loop issues)
Went over running the loop with Ryan. Worked with Ryan on trying to get the X11 forwarding for XF to work, but we couldn't get the license. Steven suggested that we try running from a Pitzer desktop, which I think is a good idea if the problem is with the X11 forwarding; if it's a license issue, then we need to figure out where the license is located. I thought this would have been written somewhere in our code, but I couldn't find it, so I may need to email OSC.

Worked more on the symmetric bicone part of the paper. I think I could afford to add detail to the results portion. I included the plots from the APS presentation, but we still need to finish a rerun with the same number of generations and individuals to see if the data makes sense (particularly, I want to see if there was a mistake made when continuing the run after it had finished the 10th generation because I'm skeptical about the fact that we got such large angles in generation 12). 

I'll meet with Evelyn and Ryan tomorrow to discuss running the loop in more detail. I'll help Ryan use the Pitzer desktop, which will hopefully work. If all goes well, we can get them started on running the loop to check against the data from the run I mentioned in the paper. 

I'm going to try writing in the section for Genetic Algorithms in the paper, since Kai said he wanted me to take the first attempt at it. I think for now I'd like to get comments on what I've written on the symmetric bicone portion before I clean it up, especially on whether or not I've given enough detail (and clearly enough).

Alex P.  Continued to test the database functionality. In the process of testing and debugging we also tested random seed functionality of the genetic algorithm as we used a fixed seed and successfully got repeat results across multiple runs, which allowed better testing as we could be certain to encounter the same scenario when testing and figuring out how to overcome an error.Altered some of the xmacros and xf calls to work with database and created the new macro skeleton for output.xmacro to use just with the database, in the process of looking through the xmacros we found some segments of the code to investigate further. Currently, we just use values 1 to NPOP of the XF simulation and rewrite the contents of 1 to NPOP each generation, but more simulation values continue to be generated even if unpopulated. Also looked more into this and started implementing a way to take out the excess directories while also planning out a way to have each generation use new values rather than overwriting so that we can have a full record of all the simulations across generations rather than just the most recent generations.  Going to continue to test database, have a run starting gen 1 now and going to continue that tonight, hopefully will find useful results and if not then things to debug. Eliot and Leo asked for help tomorrow with C++ code as they have had some problems with pointers and I agreed to help them tomorrow.
Leo I, along with Eliot, worked on implementing the new parameter. We have been working on 2 methods, one being adding a 4th gene and the second being adding another chromosome. We are focusing our attention on the chromosome method because we feel it will lead its way nicely into our future work later this summer with adding more complicated parameters. We are running into some issues with pointers and vectors within the GA that we worked on fixing. Tomorrow we hope to fix the issues with the pointers and vectors, and hope to test it with multiple generations.
Eliot

Currently working on developing GA further to properly accept 2 chromosomes. The first chromosome has some radius, length, theta and the second chromosome has the same radius and theta, but its own unique length. I currently have the code properly populating an initial pool. However, it can not quite evolve. The GA is free of syntax errors, but I am getting some type of pointer error. I am working to resolve this. I believe it is the only obstacle left on the GA side of things, but it may not be.

I will continue working on fixing the errors in the GA, and hopefully finish that tomorrow. If so, I will begin learning about the XF implementation.

Evelyn

Had class, so I couldn't meet with the group

Get caught up with the stuff from today
Ryan    

Julie: Since I  won't be doing GENETIS work every day necessarily, I'll add myself down here with a blurb when I am working with the others. I will also be continuing my daily updates on Dropbox for non-GENETIS specifics. 

  48   Mon May 11 17:56:36 2020 Julie RollaGENETIS Meeting Update

We met today for a long time and pushed to catch up. The following is what we have done:

(1) Worked for a bit on our current tasks. They will work on these current tasks before they start on their summer projects. 

  • Antenna database (Julie, Alex P., Alex M.)
  • Worked on a paper outline (Julie, Alex M.)
  • Worked on wall time variable (Eliot, Evelyn, Leo)

       Note I also have to: (1) Fix merge conflict and make sure students are good about only editing the dev branch moving forward. (2) Get branches and GitHub set up for both the asymmetric bicone and the non-linear bicone. 

(2) Went over the details of how the loop works as a group.

  • Went over how each piece works.
  • Went over how to run it. 
  • Went over best ways to test new edits. 

(3) Went over summer tasks.

  • Eliot: Add parameters to bicone (ie make bicone asymmetric)
  • Julie & Alex M.: Paper, and helping others
  • Alex P.: Frequency database for AraSim (to speed up AraSim)
  • Evelyn & Leo: Make non-linear bicone (wiggly sides) 

 

 

 

  47   Thu May 7 14:35:00 2020 Julie RollaGENETIS Meeting Update

The students have been meeting to work out the summer schedule. We are dividing into to groups:

(1) Paper writing: Julie, Alex M., Alex. P

  • We need Amy to start an overleaf draft (she has the premium version that allows you to share with more than 1 person)
  • In tomorrow's collaboration meeting (Now Fridays at 3pm) we are going to request discussion on an outline

(2) Adding wall time variable structure: Eliot, Evelyn, Leo (Alex P. will help oversee)

  • In order to prepare group (2) Alex M. has been going over the edits he started and is discussing his code. We also are taking some time to catch them up on the current code -- ie how it runs, what all of the pieces involved do -- so that they can know how to test the code after edits are made, and where each essential piece may lie. We will be going over this for the next few days in good detail. 
  • Group (2) will then be coming up with a scheduled time each day that they will be coworking on zoom. This will work the same as if they were sitting in an office together. They'll announce this time to everyone once it is set.

Alex P, Alex M, and I are going to push to rapidly finish this antenna database so that the others can create a new branch to work on the wall time variable with. This will leave us very busy for the next few days. 

  46   Sun Apr 19 21:16:21 2020 Alex MachtayGENETIS APS Slides

Here's the presentation we gave for the April APS meeting today. Atttached is the power point of the presentation and a pdf version. 

Attachment 1: Genetis_APS_Presentation.pptx
Attachment 2: Genetis_APS_Presentation.pdf
  Draft   Mon Apr 13 14:43:54 2020 Julie RollaGENETIS Meeting Update

Note that Pitzer usage over the weekend was much better! Maybe weekends are our best time to run? Today (Monday) has been a little bit worse. 

Over the past few days the following items have been accomplished:

  • We got the jobs to stop canceling on OSC.
    • Issue was the destination command for the error and output files for the GPU jobs inside the GPU job script; we fixed it by taking it out.
      • This issue was causing jobs to fail. They are no longer failing, and the loop is working again.
  • Set up a way to be able to automatically upload both the L, R, Theta plots and the Fitness Score plot to dropbox as we work.
    • Set up an email that automatically uploads to dropbox under the folder GP_Antennas/Updates/DailyFitnessScoreImages when you send an attachment with that email.
    • We added this command into the loop:
      mail -s "Subject" dropbox.2dwp1o@zapiermail.com < FScorePlot2D.png
      • It automatically has it upload an image when the loop finishes a generation. It's currently so that the file will be named whatever the subject of the email is so we can control that by whatever is after the -s command. It's currently set to not overwrite.
    • Still need to add the Veff plot to dropbox. 
  • Made gitpush.sh and gitpushforce.sh
    • Each time one of us pushes changes to GitHub, it makes a permssion lock on the directories. From now on, after looking at what files are changed (using git status. Remember to make sure to add any data files missed to the .gitignore)users should do:
      • git add .
      • git commit -m "add message" or git commit --amend --no-edit
      • Then run: ./gitpush.sh if you made a full new commit, or use ./gitpushforce.sh if you amended this edit to the previous commit. They both exist in: /fs/project/PAS0654/BiconeEvolutionOSC
        • These files run the git push or git push -f commands and then immediately run a chmod to change permissions after. 
  • Alex is starting the APS slides!
    • He should be sharing them shortly. I told him to look at Suren's from last year for guidance. 
  • We have started working on adding the feature that pulls non-unique (ie repeat parameter) individuals from an antenna database. 
    • It's currently being developed on the Antenna_Database branch in git. 
    • Alex has started writing c++ code that reads in the csv file and appends unique items to it. 
    • Comments from Amy we need to remember: 
      • Doing "==" on doubles is bad!
      • We want this "likeliness" to be between 1 and 10% (start with 10%). 
        • Remember: is this difference between L stored and new L a fraction of the wavelength?
  44   Tue Apr 7 15:48:54 2020 Julie RollaGENETIS Meeting Update

Meeting Attendance: Julie, Alex M., Alex P, Eliot, Leo, Evelyn, Mitchell, Ryan. 

Today is the deadline for confirming our attendance at the virtual APS meeting. Alex M. will be confirming and we will be orienting ourselves so that we can have some results. Here is our to-do list for today:
 

  1. Create a method for automatically adding our plots to dropbox each day. 
    • The way we are going to do it is by adding the command: mail -s "Test Subject" someemailaddress@gmail.com < testScript
      • We will create a random email to use for this that will only be receiving emails from this command. 
      • We are trying to find and set up a client that as soon as this random email address receives an email, it uploads it to the Dropbox here
    • This is still being worked on. 
  2. Start developing a database of old antenna runs and parameters, and pull data from that for any repeat dimensions. 
    • This should speed up some of our run time. 
    • We want to create a database of old antenna dimensions and their associated UAN files. That way, if we repeat an antenna geometry very closely, instead of re-submitting a job to produce the gain patterns, we can pull from one that has already been created.
    • This should limit:
      • The number of jobs we have to submit.
      • The number of GPU hours/minutes we have to request and wait for.
    • These should probably still be run through AraSim, however, since the energy could change from run to run.
  3. Keep running and collecting data. 
    • Do we want to run and have data for 20ish generations with 10 individuals for APS?
      • We have already made some progress on this so we could likely make more generations for APS if we keep going. 
    • Do we want to instead switch to doing something like 20 individuals even if we get fewer generations completed?

 

Notes apropos developing our database for antenna info. This is how we are going to do it, and what we need to develop in our code:

  1. Add all info to csv files.
    • The csv files will have columns: length, radius, theta, uan file directory and name (ie /file/location/database#/).
    •  # will be the row that this matches the L, R, Theta within the csv file
    • Inside /file/location/database#/ will be all the uan files for each frequency for these dimensions. 
      • We need an "if/else" statement in the bash script that tells the code to look in this csv file (read it in). 
        • IF the produced L, R, Theta match any of those that currently exist, save the 4th column (file location) to a variable (say we call it ExistingUan=/file/location/database#/). 
          • Then cd ExistingUan
          • Make a loop that:
            • does CP /file/location/database#/gen_individual_freq.uan BiconeEvolutionOSC/BiconeEvolution/current_antenna_evolution/XF_Loop/Evolutionary_Loop/Run_Outputs/$RunName/ (ie to the file name and location that XFintoAra.py reads. This will make sure that it has the data as if we actually completed the XF simulations for the antennas that had repeat sizes from our past runs (I mean past by runs we may have EVER done -- not past generations). 
              • We need to copy ALL of the frequency uan files for that individual into Run_Outputs/$RunName 
        • Else fill another line in that csv file with the L, R, Theta of this individual so we can keep it for later. 
          • mkdir the new directory /file/location/database#/
          • Add the name of this new directory (ie database#) to the 4th column on the csv file next to the correlating L, R, Theta.  
          • Then submit the XF job for this individual. 
          • Once it finished the XFSolver job and produces the .uan files (for each frequency), do a loop that:
            • cp individual_freq.uan /file/location/database#/gen_individual_freq.uan
              • Note that I wrote to cp individual_freq.uan instead of gen_individual_freq.uan. Note that XF produces it as individual_freq.uan, and it is changed to gen_individual_freq.uan when we move it into the Run_Outputs/$RunName directory.
              • So you can do it either (1) after it moves it to Run_Outputs/$RunName with the name gen_individual_freq.uan, or (2) before it moves the file with the name individual_freq.uan. 
  2. We need to make a new directory that holds all of these database# directories and their uan files, and the csv file the "if/else" statement checks. 
    • We need to add this new directory to the .gitignore!
  43   Thu Apr 2 16:14:29 2020 Julie RollaGENETIS Meeting update

This is a general update. Most of our recent meetings have been to teach the students to use Git properly, or to answer questions on the training modules. 

 

Update

1. Git Update: I recently cleaned up our Git and GitHub so that we have a better way to develop this code. Once I cleaned it up the goal is to educate all of the students to properly use Git so we develop code correctly moving forward. The repository had become quite a mess. The students were constantly developing on a branch, and never merging it back to the main branch. This means that we never had a working copy that we could run on while edits were being made in parallel. I attempted to merge the edits to the main branch with the hopes of getting this functioning so we could evolve while working on the bottleneck function; however, it looks like someone with poor knowledge of Git edited the main branch and we had an abundance of merge conflicts. 

What I've done now is reset the repository so that all merge conflicts are resolved and a working copy exists on the main branch. I've also added a .gitignore that will ignore all data files. Git doesn't like these because (1) it hates when tracked files disappear -- ie when we delete trial run data, if someone accidentally pushed it then Git complains-- and (2) it means it we constantly are adding more untracked files (every single new file we make is untracked and then gets tracked, like the flag files). So, I've had it only track useful code. 

The goal once I train the other on Git is to move the place of the data files and make it it's own git repository (once we start doing fewer trial runs so we won't lose important data). If the others learn to check the status of files before pushing them, they can make sure they don't push useless trial data sets, and either (1) delete them, or (2) add them to the .gitignore.

As for now, we successfully have the working, run-able copy on the main branch now. When any more revisions are made (e.g. the talk of adding the wall time variable), we can branch and edit on that so we still run. 

 

2. Evolution/bottleneck update: We got the loop working to the point that it can run all the way through a generation without fatal problems. The only potential problem we can see right now is if we need to go backward in the savestate. We're working on making that not a problem--the solution is to better organize the output files and data, which we were interested in anyway. Right now we are running with 10 individuals in each generation. Alex got through 2 generations without a problem, so he'll keep running but now we're trying to make some of these more minor fixes so we may have to stop the run. Alex does have plots (they don't look great, but at least they're being made correctly without error). At the moment we are swimming in GPUs. We haven't had much trouble at all this week with getting them, so that's why we were able to get 2 generations done between around midnight last night and 2ish today; not sure how long that will persist, but Pitzer has had relatively little usage whenever we've looked lately.

 

Comments on the plots: We're discussing this now, we don't think the individuals should really be color coded/separate on the legend because it is not like they follow one individual across multiple generations; however, we do need to label the dotted line. Another thing we were considering is decreasing the penalty factor for when the cones are too big for the hole. If we get something with a much much better Veff but it's only slightly larger than the hole, it might be worth it to help that one stick around a little bit more.

 

3. Wall time Variable Update: Also, last week Carl and Alex talked about the variable wall time again. We decided the best idea is to start by implementing a variable wall time based on the cylindrical volume that he mentioned before, but in the future, we might also be able to check the time of each GPU job and then plot it against the dimensions of the cone/cylindrical volume to get a better estimate of the wall time for each job

 

 

 

 

Attachment 1: Fitness_Score.png
Fitness_Score.png
  Draft   Tue Mar 24 15:38:50 2020 Julie RollaX11 Forwarding Issue for Windows

Most of our students 

(1)Ubuntu doesn't come with X11 forwarding on its own. So you can install Xlaunch

xeyes -display :0

 

 

  41   Wed Mar 18 15:01:10 2020 Julie RollaONBOARDING: Tutorial Projects, Reading, Setup, etc. for New Students

For each new student joining the group, we ask them to onboard by completing each of the following items in the order given:

(1) Go to osc.edu and request an account

(2) Complete the following tutorials and reading. Note that the order of these does not matter, however, I would suggest "how to use Git" comes last, as it is the lease important for you to start. Finally, I advise you work on a tutorial concurrently with reading the pages assigned below from my Dissertation. 

(3) Finally, review the full manual and complete the bullets below. The full manual is Appendix A of Julie's Dissertation.

  • Appendix A of my dissertation is our manual and acts as the holy grail of our research. Anything you need can be found here (from where our info exists on the web, to how to run the code). 
  • Once you have read this through entirely, we advise you log on to OSC and explore the code for PAEA in PAS1960. Once you have done so, complete this homework by making a copy of this google doc and filling it out on your own. 

Once these are completed, the students are ready to start helping. This is all of the coding information and basic background information on evolutionary algorithms students must know to be proficient in assisting. 





Other useful materials we have may include:

  1. Our old GENETIS manual 
    1. This is somewhat out of date; however, it does have information on the general working on the loop. 
  2. Julie's candidacy paper 
  3. Complete the writing a genetic algorithm in C++ project
    1. This is still a work in progress! I'll complete it shortly!
  4. Read chapter 3 of this book (more if you have time) by Eiben and Smith, "Introduction to Evolutionary Computation" for a quick introduction. The book should be available electronically from a university library.  Let us know if you can't find it there.
  5. Get to know XFdtd
    1. XFdtd manual is also attached; however, the link above (in 5) is more useful for coding a .xmacro.
       

Important notes:

MAC USERS: Using a GUI when connecting to OSC via SSH from your terminal.

You will need to set up X11 forwarding. Otherwise, when you go to plot via SSH, they will not display (they don't forward from OSC to your machine). If you are unable to run GUI's on OSC through your computer's terminal, follow these instructions:

  1. In your own system's terminal, type: sudo vi /etc/ssh/sshd_config
  2. Search for the following line: X11Forwarding no
  3. Change it to: X11 Forwarding yes. Save the file and exit.
  4. In your own system's terminal, type: sudo systemctl restart sshd
  5. For a Mac, download and install XQuartz.
  6. Connect to OSC using ssh -XY username@hostname.
  7. You can test that this works by typing 'xeye' or 'xclock' in the terminal when logged into OSC. 

Now you should be able to use OSC's GUIs.

 

PC USERS: 

As a PC user, there are a few things you need to do:

(1) Enable the Windows Subsystem for Linux on your device (https://developerinsider.co/stepwise-guide-to-enable-windows-10-subsystem-for-linux/#:~:text=To%20enable%20the%20Windows%20Subsystem,list%20here%20and%20click%20OK.)

(2) Get Bash on Ubuntu installed on your machine. You are going to need to have Bash on Ubuntu installed prior to starting these trainings; otherwise Bash commands will not be recognized.

(3) Get X11 forwarding working. Otherwise, when you go to plot via SSH, they will not display (they don't forward from OSC to your machine).

  • Follow these steps here.  
  • Change your config file. To do so, in terminal (with Bash on Ubuntu open) 
  • Make sure Putty and Xming are running every time before you ssh in. Use Xlaunch application to run Xming and press yes to everyrthing.
    • Xming should now be running as a background task.
    • Open PuTTY and open the pre-saved like you saved in PuTTY. (This will open a Bash terminal that asks for your OSC login password.)

 

 

Attachment 1: 237799239-XFdtd-Reference-Manual-pdf.pdf
  40   Tue Mar 17 16:18:29 2020 Julie RollaGENETIS Planning Meeting

Attendance: Julie Rolla, Alex M. 

Today Alex and I met to discuss how to move forward given the COVID-19 restrictions. We have resent out a message polling people's schedules to create online working sessions. Here is what we are planning:

 

Group name Tasks Participants Times per week to meet
Loop Group Running the loop, updating software, getting plots Julie, Alex M., Alex P.  2
Lecture Attend Leo's lectures Full group 1
Training (Python, c++, and Bash projects) Completing the training modules (Alex M. and Julie will be answering questions) Mitchell, Ryan, Evelyn, Eliot, Julie, Alex M.  2

Once we collect times for each group, we will have separate meetings for all of these entities. This way it's easier for us to meet without all having different items to discuss/work on. All of these will be zoom meetings moving forward. Meeting info will be announced shortly!

Tasks for "the Loop Group":

  1. Make wall time a variable for XF sim.
  2. Test current software edits.
    1. Such as item #1 above
    2. Make sure the bottleneck function is working.
      1. Right now it seems to be working; however, we keep hitting a wall time error. If we can make the wall time a variable then we can be sure the bottleneck function is working, and the wall time is truly the error. 
  3. Get Ruby working on XF
    1. when I type:
      /usr/local/xfdtd/7.8.1.4/remcom/bin/xfdtd        I get:
      Info: Using latest available version (7.8.1.4)
      Info: Running /usr/local/xfdtd/7.8.1.4/remcom/XFdtd_7.8.1.4/bin/xfdtd 
      Error: Unable to find executable to run.  This command must exist
  4. Get Alex's account of Ruby working. 
    1. He received an email and is still unable to log in. He is touching base with them again. 

Tasks for "the Training Group":

  1. Julie and Alex need to finish the C++ project! 
  39   Fri Mar 6 15:01:37 2020 Julie RollaGENETIS Working Meeting

Attendance: Julie, Evelyn, Mitchell, Ryan, Alex M.

Since we have been having issues with the lack of availability of GPUs on OSC, we have come up with a new to-do list:

  1. Try to keep running on Pitzer with 1 core instead of 40. Based on first attempts, it is saying this will reduce wait times to ~3 hours (will vary based on usage), and after that 3 hours, human interaction will be needed. So the plan is, someone requests a job in the morning, and when the interactive job starts, the person is responsible for doing the thing which will allow the generation to run. We will aim for one generation per day under this plan, taking turns. Better than no evolving.
  2. I have asked Heechang at OSC if we can install the latest version of XF on Ruby and/or Owens. That would be better. There seems to be more available on Owens at least.
  3. Our initial attempt to run on Ruby is giving us an error which is probably to do with different inputs required in different versions. Will attempt to pursue this as a last resort, but the older version of XF does require lots more human interaction so until other options are exhausted it's not worth it.

Today's Tasks

Mitchell: Worked on Python Project, learned to evolve (note: Mitchell may leave the group at the end of the semester)

Ryan: Starting the Python project

Evelyn: Finish bash project.

Julie: C++ project, look at Amy's proposal draft. 

Alex M:  Fix XF solver to submit each individual as a separate job (thus we can request a smaller wall time for each job)

 

TO-DO List

  1. Scaling test run: Do a test run to see if the scaling (when we also scale the grid spacing) actually affects the run time for XF. 
    1. We are going to pause on working on this, because we are struggling to get GPU time. We will test this whenever we see OSC less busy (ie if we log on at a lucky time). 
  2. Evolve: Try to keep running on Pitzer with 1 core instead of 40. Based on first attempts, it is saying this will reduce wait times to ~3 hours (will vary based on usage), and after that 3 hours, human interaction will be needed. So the plan is, someone requests a job in the morning, and when the interactive job starts, the person is responsible for doing the thing which will allow the generation to run. We will aim for one generation per day under this plan, taking turns. Better than no evolving.
  3. Parallelize the AraActualBicone job.

    1. The AraSim run in Gen 0 that gets Veff for the ARA actual bicone input file is not currently being parallelized. (ALEX M)

    2. As of 3/5, I have not gotten an update on this. I will check on the status of this. 

  4. Comment code thoroughly (Everyone needs to help with this)

    1. Julie made some progress on this over the weekend. 

      1. Made comments on what each bash script version does, and cleaned up our directories from old code so that it doesn't confuse the others when they start helping 

    2. WAY more needs to still be done. 

  5. Get new proposal results for March 12th deadline:

    1. Julie is looking at what Amy wrote here 

  38   Wed Mar 4 01:00:35 2020 Julie RollaGENETIS Working Meeting 03/03/2020

Attendance: Julie, Mitchell, Ryan, Alex P., Leo, Alex M.

Today's Tasks

Mitchell: Worked on Python Project and helped with Ryan's final bash project questions

Ryan: Finished the bash project, and is about to start the Python project. 

Leo: Worked on lectures, which will restart on March 17th.

Julie, Alex P, Alex M: Worked on fixing the job XF submission scripts. Worked on making it so that it saves state after each individual's XF simulation is complete. We tried to parallelize as many of the XF scripts as possible, but if we have more than one it asks us to choose a license for each individual -- ie requires user input each time. Since we haven't found a way to get around it AND since running with 1GPU is super fast (under 5 min per individual), we are going to run them in series.

 

TO-DO List

  1. Scaling test run: Do a test run to see if the scaling (when we also scale the grid spacing) actually affects the run time for XF. (PASSED THIS TASK TO JULIE. WILL DO TOMORROW 3/4)
  2. Evolve: Right now, we are using an interactive job with only a CPU running at half scale, and have just edited our software so that we submit jobs for the XF simulations requesting 1GPU (could be 2GPU if we choose to edit it so). 
    1. WHY WE ARE DOING THIS:
      1. Remember that we only need an interactive job when XF initializes and reads in the DNA for each individual. The GUI closes once the simulations start and we no longer need an interactive job. 
      2. We were requesting a 1GPU interactive job and just running XF from the command line; however, OSC has been SUPER busy lately and we haven't been getting them (especially since we need long wall times if we are running the full simulations over many generations within the interactive job). However, we realized that if we submit an interactive job at a CPU (so that XF can allow the GUI to pop up), and then run the simulations by requesting 1-2GPUs we can then request a much smaller wall time and it will be quicker for the simulations to run --- ie we would be requesting a wall time of about 10 minutes using 1-2GPUs per simulation for each job submission versus 5+ hour wall time of an interactive job using 1-2GPUs.
      3. WE HAVE TESTED THIS, AND WE HAVE ERRORS. WE WORKED ON FIXING THEM TODAY, AND HOPE TO FINALIZE THEM TOMORROW (3/4) AND RUN!
  3. Parallelize the AraActualBicone job.

    1. The AraSim run in Gen 0 that gets Veff for the ARA actual bicone input file is not currently being parallelized. (ALEX M)

    2. As of 3/3, I have not gotten an update on this. I will check on the status of this tomorrow. 

  4. Comment code thoroughly (Everyone needs to help with this)

    1. Julie made some progress on this over the weekend. 

      1. Made comments on what each bash script version does, and cleaned up our directories from old code so that it doesn't confuse the others when they start helping 

    2. WAY more needs to still be done. 

  5. Get new proposal results for March 12th deadline.

  37   Sat Feb 29 02:21:16 2020 Julie RollaGENETIS Working Meeting

Attendance: Julie, Mitchell, Ryan, Evelyn, Eliot, Alex M.

Today's Tasks

Julie: Worked on C++ project, and helping others with the Python project; I also made additions, clarifications, and edits to the Bash project (also updated the solutions and pushed them to gitHub). I still need to do the following:

  • Add the instructions from the google doc to the GitHub pages for both the Python and the Bash projects.
  • Work on the C++ project!
  • Run a test evolution this weekend to make sure AraSim stuff is fixed and that XF job submissions work. 
  • EVOLVE

Mitchell: Started Python Project.

Evelyn, Eliot, Ryan: Work through my bash project. 

Leo: Worked on lectures. 

Alex M: Helped make XF job scripts. Needs to do the following:

  • Parallelize the AraActualBicone properly. 
  • EVOLVE!

Alex P: Needs to do the following:

  • Do a test run to see if the scaling (when we also scale the grid spacing) actually affects the run time for XF.

 

 

TO-DO List

  1. Scaling test run: Do a test run to see if the scaling (when we also scale the grid spacing) actually affects the run time for XF. (ALEX P)
  2. Evolve: Right now, we are using an interactive job with only a CPU running at half scale, and have just edited our software so that we submit jobs for the XF simulations requesting 1GPU (could be 2GPU if we choose to edit it so). 
    1. WHY WE ARE DOING THIS:
      1. Remember that we only need an interactive job when XF initializes and reads in the DNA for each individual. The GUI closes once the simulations start and we no longer need an interactive job. 
      2. We were requesting a 1GPU interactive job and just running XF from the command line; however, OSC has been SUPER busy lately and we haven't been getting them (especially since we need long wall times if we are running the full simulations over many generations within the interactive job). However, we realized that if we submit an interactive job at a CPU (so that XF can allow the GUI to pop up), and then run the simulations by requesting 1-2GPUs we can then request a much smaller wall time and it will be quicker for the simulations to run --- ie we would be requesting a wall time of about 10 minutes using 1-2GPUs per simulation for each job submission versus 5+ hour wall time of an interactive job using 1-2GPUs.
      3. WE HAVE NOT TESTED OUR .SH JOB SUBMISSION SCRIPTS! JULIE WILL DO IT THIS WEEKEND!
  3. Parallelize the AraActualBicone job.

    1. The AraSim run in Gen 0 that gets Veff for the ARA actual bicone input file is not currently being parallelized. (ALEX M)

  4. Comment code thoroughly (Everyone needs to help with this)

  5. Get new proposal results for March 12th deadline.

  Draft   Tue Feb 25 17:10:36 2020 Alex Machtay & Alex PattonWorking Meeting 2/25/20

Today's Tasks

Mitchell, Evelyn, Eliot, Ryan: Work through the bash project; Mitchell is done, Ryan and Evelyn are close to being finished.

Leo: Worked on next presentation (not sure when he'll present--either Friday or next Tuesday).

Alex M: Continued commenting code and helped Alex P. with changes in Part_B and Roulette_algorithm .

Alex P: Fixed errors in loop, tested with an interactive job (using CPU). Errors look to be fixed up through part B. Arasim should be launching and using the $tmpdir, though we need to get further in the testing to see for sure.

Made a copy of the loop that functions without GPUs so that if GPU is unavailable some progress can be made even if it is slow.

While waiting for a GPU Alex P ran on CPUs, at half scale factor one indiviudal in XF took 32 minutes (although it was predicted to be over 2 hours). 

To Do List:

We want to keep testing the loop. Right now, we are using a cpu running at half scale. This gives estimated times for each antenna of up to 2 hours. GPUs are suddenly hard to come by, so if we are relegated to using CPUs we'll probably need to scale down considerably.

Evelyn, Ryan, and Mitchell are probably going to be ready for the python project soon. If someone is around on Friday to help them they should be able to finish the bash project.

One idea is to run all the inital xmacros in the interactive job and then submit a GPU job that runs all the xfsolver command. With the hope that not having the GPU in the interactive job will make it easier to get the interactive job and to get the GPU for a shorter time because it would only be needed for a smaller segment. This would especially help with running larger amounts of individuals.

 

  35   Fri Feb 21 16:47:21 2020 Julie RollaGENETIS Working Meeting

Today's Tasks

Julie: I finished the Python assignment. I am making sure my solutions encompass all of the different ways to solve this, and will then start on the C++ project. 

Mitchell, Evelyn, Eliot, Ryan: Work through my bash project.

Leo: At 4 pm today Leo will begin his "physics of antennas" lecture series! 

Alex M: All scaling is corrected to be set at the bash script level. Alex is now going to work on commenting code!

Alex P: Still working on our AraSim edits!

 

TO-DO List

The following is our coding to-do list:

  1. Get our Ara sim errors fixed

    1. Explanation of issue (1): Usually 1 of ~100 AraSim jobs never completes. OSC shows "completed", but the flag is never written and the output file is not filled in entirely. The error file shows the following.

      1. UPDATE: Alex still trying to figure out how to input Car's suggestion. He also needs to add this for the flag files that are being saved. Here is his most recent question:

Alright so I have pbsdcp working with generic files and I now have it working in the AraSim call but my current worry is that it wasn't creating a file unless I had

./AraSim setup.txt $runNum outputs/ a_${num}.txt > $AraSimDir/outputs/a_${num}.txt

So I just did this to have some a_1.txt, before we had the last line writing directly to our antennaPerformance metric (this makes the AraOut file typically I just kept it as this name for testing purporses), now if I get rid of the portion after the > or the part after outputs/ it doesn't seem to make a file that we need. I think I don't understand to get the full output of AraSim without using this. Because I don't understand how using this is and then using pbsdcp is any more efficient.

Now maybe if I had the portion right after the > go directly into TMPDIR instead of using pbsdcp to both scatter to and gather from TMPDIR that would be better

  1. Make the following variables in the bash script. 

    1. UPDATE: Alex M. finished editing the scaling factor to be at the bash level for every piece of code that uses it. 

  2. Turn tournament on in the GA. 

  3. Parallelize the AraActualBicone job.

    1. The AraSim run in Gen 0 that gets Veff for the ARA actual bicone input file is not currently being parallelized.

  4. Comment code thoroughly

    1. UPDATE: Alex commented code that utilized the scale factor (Part_E.sh). He is now going to begin commenting the other code to clean it up. We want it to be read as cleanly as our GA. 

  34   Tue Feb 18 16:20:59 2020 Julie RollaGENETIS Working Meeting

Today's Tasks

Julie: Continue writing Python project! 

Mitchell, Evelyn, Eliot (not here on Tuesdays), Ryan: Work through bash project

Leo: continuing gathering information for the "physics of antennas" lecture series! We start this Friday at 4pm. 

Alex M: Try to get scaling into the xmacro, comment the code better.

Alex P: Add on the AraSim fixes mentioned below! He is testing this now. We are waiting for updates. 

 

TO-DO List

The following is our coding to-do list:

  1. Get our Ara sim errors fixed

    1. Explanation of issue (1): Usually 1 of ~100 AraSim jobs never completes. OSC shows "completed", but the flag is never written and the output file is not filled in entirely. The error file shows the following.

      1. UPDATE: Alex P. has edited our bash job script to save the outputs to $TMPDIR and then to pbscp (submit a "job" to copy them over) them into our correct directory that the bash script needs them in. He is testing this now and will report back. 

      2. Note: we still need to make sure that every time we run that we divide AraSim runs into MANY more jobs (ie further parallelize by dividing into, say, 100 instead of 10). 

DATA_LIKE_OUTPUT=1,2 doesn't work with DETECTOR=0,1,2
DATA_LIKE_OUTPUT controls data-like output into UsefulAtriStationEvent format; without a real station selected (using DETECTOR==3,4), the mapping to the data-like output will not function correctly
There are 1 errors from settings. Check error messages.
SysError in <TFile::Flush>: error flushing file outputs/AraOut.setup.txt.run29.root (Stale file handle)
  1. Explanation of issue (2): We keep timing out of the interactive job when AraSim is running (if the user isn't remaining active on their terminal).
    1. OSC suggested that we use a virtual desktop (via ondemand) instead of using an interactive job. We will try this. 
      • Note: We should now be requesting 2GPUs instead of 1GPU. UPDATE: Alex P. requested one, but it took too long and he had to leave before he got it. 

 

  1. Make the following variables in the bash script. 

    1. UPDATE: Alex M. figured out how to pass the scale factor into the xmacros. We used the "tr" command in bash. He will be testing this and can update us at the Thursday meeting. 


In xmacros/simulationPECmacroskeleton_prototype.txt (use sed command):

Grid spacing=0.1
Frequency= factor of n higher 
This factor of "n" higher in frequency has to be the same as the Multiplier_factor in the roulette algorithm AND the same as GeoFactor in fitnessFunction_ARA_amy.cpp.

  1. Turn tournament on in the GA. 

  2. Parallelize the AraActualBicone job.

    1. The AraSim run in Gen 0 that gets Veff for the ARA actual bicone input file is not currently being parallelized.

  3. Comment code thoroughly

    1. UPDATE: Alex commented code that utilized the scale factor (Part_E.sh). More still needs to be done. 

  33   Fri Feb 14 16:44:44 2020 Julie RollaGENETIS Working Meeting

Today's Tasks

Julie: Write Python project! I have officially finished the bash course for the students. It can be found here: https://docs.google.com/document/d/1nGdPrwfYJOrO6NBT76Wsh6T0hDmGHo2-23oJ1WyeNcs/edit?usp=sharing. Mitchell is currently trying it out and will give me comments. 

Mitchell: Work through my bash project and give me comments!

Evelyn, Eliot, Ryan: Make progress on the "Learn the Command Line" course on Code Academy. 

Leo: continuing gathering information for the "physics of antennas" lecture series! These will take place every Friday meeting starting next week. 

Alex M: Try to get scaling into the xmacro, comment the code better.

Alex P: Add on the AraSim fixes mentioned below!

 

TO-DO List

The following is our coding to-do list:

  1. Get our Ara sim errors fixed

    1. Explanation of issue (1): Usually 1 of ~100 AraSim jobs never completes. OSC shows "completed", but the flag is never written and the output file is not filled in entirely. The error file shows the following.

      1. Carl believes this is due to the way we are saving our AraSim outputs. Instead of saving the files directly to our desired location, we are going to save them to $TMPDIR and use "pbsdcp" to copy them from $TMPDIR to our desired location. This may alleviate the problem since it will not be writing all the files to our desired location at once. 

DATA_LIKE_OUTPUT=1,2 doesn't work with DETECTOR=0,1,2
DATA_LIKE_OUTPUT controls data-like output into UsefulAtriStationEvent format; without a real station selected (using DETECTOR==3,4), the mapping to the data-like output will not function correctly
There are 1 errors from settings. Check error messages.
SysError in <TFile::Flush>: error flushing file outputs/AraOut.setup.txt.run29.root (Stale file handle)
  1. Explanation of issue (2): We keep timing out of the interactive job when AraSim is running (if the user isn't remaining active on their terminal).
    1. OSC suggested that we use a virtual desktop (via ondemand) insead of using an interactive job. We will try this. 
      • Note: We should now be requesting 2GPUs instead of 1GPU. 

 

  1. Make the following variables in the bash script. 

    1. Alex M is working on this. We can't directly make this a variable. We need to take the array of frequencies and multiply it by some value and THEN feed it into the xmacro. He is looking into whether of not he can directly do this in bash. If not, I have written a small python script that does this, and he can write it to that file; however, he can't append it at the end so it's not the ideal way. We are going to continue to try to do it through bash first. 


In xmacros/simulationPECmacroskeleton_prototype.txt (use sed command):

Grid spacing=0.1
Frequency= factor of n higher 
This factor of "n" higher in frequency has to be the same as the Multiplier_factor in the roulette algorithm AND the same as GeoFactor in fitnessFunction_ARA_amy.cpp.

  1. Turn tournament on in the GA. 

  2. Parallelize the AraActualBicone job.

    1. The AraSim run in Gen 0 that gets Veff for the ARA actual bicone input file is not currently being parallelized.

  3. Comment code thoroughly

    1. The Gen alg is commented so thorougly that it can read like a book. We want this with ALL of our code; it will help all the less familiar people get comfortable. 

  32   Wed Feb 12 01:18:22 2020 Julie RollaGENETIS Working Meeting

Today we continued with the to-do lists items previously posted. I marked all the to-do list items that have been completed with green and a slash. Note that I have also added a new item at the bottom of the to-do list.

 

Today's Tasks

Julie: Write bash practice assignment (almost done!)

Evelyn, Mitchell, Eliot, Ryan: Make progress on the "Learn the Command Line" course on Code Academy. (Mitchell is done, and the others are close.)

Leo: Start gathering information for the "physics of antennas" lecture series! Note: Remember that Leo wants to be an educator, and would like us to find opportunities to work on "teaching" items. Most of the students don't have any background on how antennas work. He started learning about them and is going to do a lecture series 

Alex M: Make sure antenna scaling is made a variable in the bash script everywhere that it exists, start mass commenting all of the code so it reads as cleanly as the GA does. (Finished making the antenna scaling a variable. needs to be tested, but we waited forever for wall time)

Alex P: Fix hard-coded variables (done but tried to test it. Waited for wall time and never got it), and looked into ways to get around requesting an interactive job. For some reason, we don't need an interactive job to forward things like plots, but we do for the XF UI. We were trying to figure out why this is, and if there's a way to fix this. So far, no luck. 

 

AMY QUESION: Could we actually consider running on NASA computers? I think Alex P. found a way the NASA computing centers let you adjust for this issue, and it didn't work on OSC. If we end up not finding a solution with OSC, is it at all possible to have XF installed with NASA computing centers? (NOTE: I JUST ASKED ALEX FOR MORE DETAILS AND WILL ADD THEM HERE TOMORROW -- IE WEDNESDAY)

 

 

TO-DO List

The following is our coding to-do list:

  1. Get our Ara sim error fixed (Alex, Julie) 

    1. It seems that if AraSim jobs are left to run while the user is away, it doesn't properly write one or more of the flags, and makes the loop get stuck at AraSim. We must then re-run from that state by manually editing the Save State text file.

    2. We are going to try to get XF to run at the command line so that we can submit it as a job. This would alleviate us using an interactive job. We *hope* this would fix the error since the user wouldn't be "gone" while utilizing a GPU in an interactive job. 

      1. Alex emailed XF to ask a few questions! Stay tuned!

  2. Make Hardcoded directories variables

  3. Make the following variables in the bash script:


    In xmacros/simulationPECmacroskeleton_prototype.txt (use sed command):

    Grid spacing=0.1
    Frequency= factor of n higher 
    This factor of "n" higher in frequency has to be the same as the Multiplier_factor in the roulette algorithm AND the same as GeoFactor in fitnessFunction_ARA_amy.cpp.
    
    
    

    In roulette_algirithm.cpp

    Length = 50cm/Multiplier_factor; 
    STD= 15cm/Multiplier_factor 
    Radius = 1.5cm/Multiplier_factor; 
    STD= 0.75cm/Multiplier_factor 
    
    Also the "Multiplier_factor" line 89.
    
    This "Multiplier_factor"has to be the same as the GeoFactor in fitnessFunction_ARA_amy.cpp AND the same as the factor higher in frequency in the xmacro.
    ​NOTE:THIS MUST BE RECOMPILED AFTER CHANGING.
    
    
    
    

    In fitnessFunction_ARA_amy.cpp:

    GeoFactor=2 
    This GeoFactor has to be the same as the Multiplier_factor in the roulette algorithm AND the same as the factor higher in frequency in the xmacro
    NOTE: THIS MUST BE RECOMPILED AFTER CHANGING.
    
    
    
  4. Get rid of all code we are not using anymore.  

    1. Currently using: XF_loop_AraSeed.sh

      1. Look at what items are being called in here, and remove old versions such as XF_loop_Prototype.sh, XF_loop_Functionized.sh, and the related scripts. 

      2. These can temporarily moved to on "old code" directory and we can delete once we finalize the loop. 

  5. Turn tournament on in the GA. 

  6. Parallelize the AraActualBicone job.

    1. The AraSim run in Gen 0 that gets Veff for the ARA actual bicone input file is not currently being seeded.

  7. Comment code thoroughly 

    1. The Gen alg is commented so thorougly that it can read like a book. We want this with ALL of our code; it will help all the less familiar people get comfortable. 

ELOG V3.1.5-fc6679b