Scuffed Mac OS
Scuffed Mac OS
The scuff-em source distribution is packaged with the standardgnu autotoolsbuild environment. If you have experience installing autotools-basedsoftware packages, you should have no trouble installing scuff-emvia your typical procedures, although you are encouraged to skim the general comments section below before you start.
Scuffed Mac Os 11
I know this has been talked about 1000 times, but I thought this would be an ideal place to share suggestions/possible fixes. FitBit themselves are less than useless on this. And frankly the fact that so many people are complaining about it shows a serious issue in screen quality. It should be a lo. StuffIt Expander 5.5 was the most commonly used archive extractor in the later 90's on Mac OS 8 until the standard edition 7.0 came bundled with Mac OS 9. Until version 7, StuffIt Expander 5.5 was a must have tool especially for people surfing the web as everything was compressed and archived in.sit or.hqx as a way to preserve resource forks.
If you aren't an autotools expert, you should still beable to install scuff-em without much trouble by followingthe OS-specific instructions below.
In either case, if you have any trouble installing scuff-em,please file an issue on the scuff-em GitHub page.
Table of Contents- 1. General comments about installing scuff-em
- Configure options
- 2. Installing on Debian/Ubuntu-based Linux systems
- 3. Installing on MacOS
1. General comments about installing scuff-em
External packages
Mac Operating System Mac OS X 10.6 Snow Leopard Item Weight 4.7 pounds Product Dimensions 9.12 x 13 x 1.08 inches Item Dimensions LxWxH 9.12 x 13 x 1.08 inches Color White Rear Webcam Resolution 1 MP Processor Brand Intel Processor Count 1 Computer Memory Type DDR3 SDRAM Flash Memory Size 8 Hard Drive Interface Serial ATA. Welcome to the Season Pass of.NEW. SCUFFED EPIC BHOP SIMULATOR 2023 (POG CHAMP), with 4 Maps at launch of Year 1. Introducing new maps such as Abandoned, and more community designed maps to be added to the pass, the pass also comes with free multiplayer maps exclusive to the holders. I think its AirPods hardware or Software issue, because a lot of peoples have the same issue on any versions of OS and devices. Also its some faint scratchy popping noise at random times when its in my ears with no music onAnd AirPods randomly dropping connection to iPhone/Mac/Apple Watch. It needs to be fixed ASAP. Because its really bad.
scuff-em relies on a small number of well-established free open-sourcesoftware packages to implement certain non-essential functionality (seethe OS-specific instructions below for guidance on how to install these).scuff-em can be compiled and installed without any of these packages, but in this case the code will be somewhat crippled.
If you actually want to solve scattering problems (instead of just setting them up), you will need LAPACK/BLAS or an equivalent replacement such as the Intel MKL. If you do not already have your own favorite solution for this, I highly recommend the excellent open-source (openblas)(http://www.openblas.net/) package, which includes both LAPACK and BLAS and automatically tunes itself for optimal performance on your hardware.
If you want the capacity to write output files in the standard HDF5 binary format, you will need HDF5.
If you want to compile the python interface, you will need the python development files and the numpy package, as well as the swig interface-generator package.
Although not required to install, compile, or use scuff-em, gmsh is an extremely valuable open-source meshing and visualization tool that is used throughout the scuff-em documentation.
My libgdsii package contains a simple GDSII-to-GMSH file converterutilities for extracting shapes and other information from GDSII files
Status of the GitHub repository
After installing external packages, you will fetch the scuff-emsource code from its repository hosted on GitHub (see specificinstructions below).The current build status of the scuff-em master branch is:
Setting up an informative command-line prompt
Regardless of the specific OS you're running (Linux, MacOS,or Windows), the installation process will involve typingcommands at a prompt in a console window. Unfortunately, in most cases the default prompt is not particularlyinformative---in particular, it doesn't tell you thecurrent working directory (which can be easy to forgetwhen switching among folders in a complex build process)or the current host name (which can be easy to forgetwhen you're frequently logging in and out of remotemachines.) Thus, for command-line work I find it usefulto set up a prompt that includes this information, whichyou can do as follows:
Note that the prompt now tells me my current workingdirectory (/Users/homereid
) and the name of themachine (mac-56-129-14.mit.edu
) so I don't lose trackof where I am. (The 34
refers to the number of commandsI've executed in this console session thus far.)
If you find the above command useful, you may copyit into your ${HOME}/.bashrc
file, in which casethe informative prompt will be set up automatically whenever you open a console window.
Configure options
After fetching the source tree, you will run a command that automatically sniffs outthe environment on your machine to configure the procedure that will be used tobuild scuff-em. As detailed in the OS-specific instructions below, this command takes the form
the first time you run it after fetching the source, or simply
on subsequent builds. For the most part, this step will automatically handle the various things that need to be done to setup thebuild process, but you may guide the process by specifyingvarious options manually (in the space labeled [OPTIONS]
above).Here are a few of the more salient options you may wish to specifyto customize your build.
Specifying the installation prefix
If the build process succeeds, all files needed torun scuff-em calculations---includingexecutable programs, library files, and example calculations---willbe automatically installed in subdirectories of a top-leveldirectory known as the prefix. The default prefix is /usr/local/,
but you may wish to install scuff-emin a different location---in particular, you will need to do thisif you don't have administrator privileges on the machine you are using. This may be done via the configure option --prefix=/path/to/scuff/installation.
For example, to install scuff-em ina subdirectory of your home directory named scuff-em-installation,
you can say
Scuffed Mac Os X
In this case, after the scuff-em installationhas completed, the various installed files will be in the followinglocations:Binary executable files (like
scuff-scatter
andscuff-rf
) will be in${HOME}/scuff-em-installation/bin.
Library files (like
libscuff.so
) will be in${HOME}/scuff-em-installation/lib.
The scuff-em example files (like
YagiUdaAntennas
) will be in${HOME}/scuff-em-installation/share/scuff-em/examples.
If you go this route, you will probably want to add the locationof the scuff-em binary executables to your executionpath by saying
Now you will be able to run command-line codes like scuff-rf
from any directory and the OS will know where to find theprogram file.
Specifying locations of external libraries
In some cases, external packages used in the SCUFF-EM compilationprocess may be installed in non-standard locations on your system.In this case, you may need to set the CPPFLAGS
and/or LDFLAGS
environment variables to specify the locations of library headerfiles and binary files, respectively.
For example, on my (Ubuntu-based) Linux system, the HDF5 libraryis provided by the libhdf5-openmpi-dev
package, whichplaces the HDF5 header files in /usr/include/hdf5/openmpi
andthe HDF5 library binaries in /usr/lib/x86_64-linux-gnu/hdf5/openmpi.
Thus, when I configure
to build scuff-emI specify these paths, like this:
Note: To figure out where a package like libhdf5-openmpi-dev
installsits files, you can use the command dpkg --listfiles
:
Using the MPI compilers
scuff-em makes heavy use ofopenmp-based shared-memory multithreading to accelerate taskssuch as BEM matrix assembly. Compiling with OpenMP support is enabled by default, but if you wish to disable ityou may use the --without-openmp
option to configure.
(But you will be sacrificing a lot of speed if your system has more than one CPU core available!)
In some cases, you may need to use the MPI-aware compilers when building scuff-em; this is true, in particular,if you are using a parallel version of the HDF5 libraries.In this case, just set the CC
and CXX
environment variables tothe names of the MPI C and C++ compilers (usually mpicc
and mpic++
) beforeconfiguring:
Disabling the python interface to speed the build process
Compiling the python interface is slow---it accounts formore than half of the build time on some systems.If you don't need the python interface to scuff-em,use the configure option --without-python
to accelerate the build process.
Parallel make
As described in the OS-specific instructions below,after the configure process is finished you will type make install
to proceed with the actual build and installation of the code.If your machine has more than one CPU core, you can acceleratethis process by saying e.g.
(replace 8
by the actual number of CPU cores on your machine).
2. Installing on Debian/Ubuntu-based Linux systems
A. Use apt-get to install external packages
On Debian/Ubuntu Linux systems, you can fetch all of the external packages mentioned above as follows:
B. Clone the GitHub repository and build the code
The procedure should now be as simple as
(In the last line, replace 8
with the number of CPU coreson your machine.)
As discussed above, if this succeeds, the executable filesfor the scuff-em application modules(such as scuff-scatter
, scuff-rf
, etc.) will be installed in the directory ${HOME}/scuff-em-installation/bin/,
and the demonstration examples for the various application programs will be in ${HOME}/scuff-em-installation/share/scuff-em/examples.
At this point you may proceed to running a computational exampleand verifying CPU utilization.
3. Installing on MacOS
The following installation procedure succeeded for meon MacOS Sierra 10.12.3 with XCode version 8.1and HomeBrew pre-installed.All commands are to beentered at the console prompt of a terminal window(and, if you wish, after setting up an informative prompt to help you keep track of where you are in the filesystem).
A. Use xcode and homebrew to install external packages
A1. Install command-line tools for Apple developer suite
A2. Use homebrew to install required open-source packages
The second command here appears to be necessary---even ifGCC is already installed on your system---to build anythingwith OpenMPI support, which (as noted above)is important for achieving good scuff-emperformance on machines with more than one CPU core.
You will most likely also want to installgmsh. (Althoughgmsh is available within HomeBrew, the HomeBrew-installed version seemed to be lacking graphics support when I tried it, so instead I installed it from the gmsh website, but YMMV.)
B. Clone the GitHub repository and build the code
On the system I used (MacOS Sierra 10.12.3, XCode version8.1), the setup protocol outlined above has the following quirks:
- OpenMPI codes must be compiled with
gcc-7
org++-7
with the-fopenp
compiler flag. - The Homebrew installation of openblas leaves it in a nonstandard location, which must then be specified explicitly when building codes.
The following script accomodates these quirkswhile fetching the latest scuff-em sourcerepository from GitHub, building, and installing in theparent directory specified by the --prefix
option below:
As discussed above, for a system with e.g. 8 CPU coresyou would say make -j 8
instead of make -j 4
inthe last line.
If this succeeds , you may proceed to running a computational exampleand verifying CPU utilization.
4. Installing on Windows
5. Run a scuff-em computational example and check CPU utilization
If the build and installation succeed, you're in businessto run a scuff-em calculationand verify that your machine's resources are being fully utilized. For example, to compute input impedance vs. frequency for a Yagi-Uda antenna, try:
This calculation should take anywhere between 10 seconds and a minutedepending on your CPU configuration. While the calculation is running in one terminal window, open a second terminal window andrun top
to monitor system performance---in particular,to verify that scuff-rf
is properly using all of your CPU cores. On the system I used, which has 4 CPU cores, this lookslike this:
The red-framed portion of the display here is the part youcare about: you want the CPU utilization reportedfor scuff-rf
to be close to , where is thenumber of CPU cores on your machine. If you see something like this,then scuff-em was built properly to take advantage of your machine's resources. On the other hand,if the CPU utilization reported for scuff-rf
bounces aroundnear 100 %, then (assuming your machine has more than one CPU core!) your scuff-em build is suboptimal---calculationswill work and will yield correct answers, but at a fractionthe speed that should be available on your machine.
Note: On some (but not all) Linux systems I havefound it necessary to set the environment variable GOMP_CPU_AFFINITY
to achieve maximum multithreaded performance in scuff-em calculations. If you have an 8-coremachine, say something like
(for a machine with N
cores, replace the 7
with N-1
).I don't understand why this is needed in some cases but notothers---if you have any ideas let me know!
6. Building for debugging
If you would like to run scuff-em API codes in a debuggerlike gdb,you will want to modify the build options to (a) includedebugging symbols, (b) turn off optimization, (c)disable openmp multithreading, which does not play wellwith GDB.
Here is the script that works for me to achieve these goals:
(It shouldn't be necessary to have to add -O0
to both theenvironment variables and the compiler command lines, butthis seems to be the only way things work for me.)
After running this script to reconfigure for building withcompiling support, you will want to make clean; make
to rebuild everything with debugging support. Of course,after you are finished debugging you will need to reconfigurewith debugging support removed and then re-do the clean build. Because this is time-consuming, I typicallymaintain two separate copies of the code base, one fordebugging and one for running at full speed.
Once debugging support has been added, you can run the code in gdb. Here's a sample session:
Note: If you have a better debugging solution that does not require steps (b) and/or (c) above , pleaselet me know about it. It stinks to have to run the codesat greatly reduced speed when debugging, because often theproblem spots lie after expensive sections like BEM matrixassembly, and then it takes forever for the code to runin the debugger to get there.
Comments
Scuffed Mac OS